Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
这是我正在研究的一个问题,但我只想知道为什么偏移量是这样的(红色的小数字)
有人可以向我解释为什么在struct s1,偏移量来自0->4->8?据我了解,因为char是 1 个字节,所以有 3 个字符。所以它是 3 个字节加 1,以满足对齐。但为什么它会从 4 变为 8,在union u1 b?? union有4个字节吗?为什么?
struct s1
0->4->8
char
union u1 b
union
union 是 4 个字节,因为这是它包含的最大元素的大小,即指针(这必须是 32 位平台)