2

这是我正在研究的一个问题,但我只想知道为什么偏移量是这样的(红色的小数字)

图片

有人可以向我解释为什么在struct s1,偏移量来自0->4->8?据我了解,因为char是 1 个字节,所以有 3 个字符。所以它是 3 个字节加 1,以满足对齐。但为什么它会从 4 变为 8,在union u1 b?? union有4个字节吗?为什么?

4

1 回答 1

2

union 是 4 个字节,因为这是它包含的最大元素的大小,即指针(这必须是 32 位平台)

于 2012-12-12T00:19:16.513 回答