Storage of Bit Fields (ビット フィールドの格納)
ANSI 3.5.2.1 int 内のビット フィールドの割り当て順序
ビット フィールドは、整数内で最下位ビットから最上位ビットへと割り当てられます。 次のコードでは、
struct mybitfields
{
unsigned a : 4;
unsigned b : 5;
unsigned c : 7;
} test;
int main( void )
{
test.a = 2;
test.b = 31;
test.c = 0;
}
ビットは次のように配置されます。
00000001 11110010
cccccccb bbbbaaaa
80x86 プロセッサは整数値の下位バイトを上位バイトの前に格納するため、上記の整数 0x01F2 は、0xF2 の後ろに 0x01 が続くように物理メモリに格納されます。