首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

非一般对齐

2012-06-24 
特殊对齐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.

热点排行