437969418 发表于 2019-8-30 13:30:59

关于C语言结构体的填充对齐问题

小甲鱼分享的文章看到的https://fishc.com.cn/forum.php?mod=viewthread&tid=83418&extra=page%3D2%26filter%3Dtypeid%26typeid%3D571
里面有说到填充的时候,在位域也进行了考虑

根据里面的解释的话sizeof(foo5)不是应该是6吗?(1bit 和 4bit 和7 Bit 加上填充的4 bit共字节,char 和short再对齐填充一共是2+2+2 = 6);
为什么运行以后的结果是8?

还是说我的理解错误了呢。。

flamer 发表于 2019-8-30 13:48:43

就算用了位域,前面的最大的类型是int还是要按照int去对齐补齐没有其他声明的话

437969418 发表于 2019-8-30 13:55:33

flamer 发表于 2019-8-30 13:48
就算用了位域,前面的最大的类型是int还是要按照int去对齐补齐没有其他声明的话

也就是位域的那三个变量加起来才12位,需要补齐到4字节的意思吗?
页: [1]
查看完整版本: 关于C语言结构体的填充对齐问题