概要C/C++では、構造体の定義で、ビット単位の大きさでメンバーを定義できる。変数名;unionを併用し、8ビットや16ビットの変数をビットごとに定義する共用体を作ることも可能(後述)。int)と、_Boolしか使えないことになっている。charに対するビットフィールドである。I/OポートファームウェアなどでI/Oポートをビットで定義して使うような場合や、通信プロトコルの処理などによく使われる。PORT;ビット構造体は、上位から定義するか下位から定義するか、コンパイラーによって差があるので注意が必要。使わない部分は、名前を定義せずビット数のみ書くことができる。上の例であれば、次のように使える。殆どのC/C++コンパイラーは、この機能を重視していないためか、非効率なコードを出力する。この処理にバグがあるコンパイラーも存在した。スレッドセーフな動作をするのかどうかという、コンパイラーの仕様に基づく問題点がある。コードサイズや速度などを重視する場合は、ビットフィールドは用いず、ビット演算などを使う方が無難である。参加の案内ダウンロード↑本の。