非一般对齐
特殊对齐C/C++ code//结构体中嵌套union,union中嵌套 union, 书上没有讲解,很少提到这个东西, struct对齐
特殊对齐
C/C++ code//结构体中嵌套union, union中嵌套 union, 书上没有讲解,很少提到这个东西, struct对齐倒是很多struct A{char a;float b;union B{char c[7];int d;}b;};中间有union, 一般的对齐我会,只是有嵌套union的不会union B 占7个字节, 其最大对齐方式为4然后和A中的那些成员对齐按照什么规则???
[解决办法]UNION B不是占7个字节,而是占8个字节,因为对其方式是4,然后把这8个字节放进去。
struct A 里面的3个变量大小分别是 1 4 8
对齐为1+3+4+8=16;
另外4楼的那个例子楼主也搞错了
sizeof(A):
1+1 + 4 + 5+ 1+ 2 +2==16
是1+3+4+(5+1+2)=16;
[解决办法]union的大小也要对齐, 7字节char,4/8字节情况下对齐到8.