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 的形式存储在物理内存中。