在汇编中对齐,每个如何得到它的偏移量?

时间:2012-12-12 00:15:20

标签: assembly x86 alignment

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

pic

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

1 个答案:

答案 0 :(得分:2)

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