标签: assembly x86 alignment
这是我正在研究的一个问题,但我只想知道为什么偏移是这样的(红色小数字)
有人可以向我解释为什么在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
答案 0 :(得分:2)
union是4个字节,因为它是它包含的最大元素的大小,即指针(这必须是32位平台)