在32位cpu上选择缺省对齐的情况下,有如下结构体定义:
struct A {
unsigned a : 19;
unsigned b : 11;
unsigned c : 4;
unsigned d : 29;
char index;
};
int main()
{
cout << sizeof(struct A) << endl;
}
//为什仫输出结果是16字节呢?
4字节 32位 三个4字节可以存放下 71位的数据啊?
4 -> 29
4->19 + 11
4->4 + 8
不是12字节吗?
要按a、b、c、d、index的顺序来进行存储。