0

在此处输入图像描述

我以为short是1?为什么它增加了 8 个,从 16 个增加到 24 个?

4

1 回答 1

4

这是数据类型对齐的问题。

有人可以向我解释为什么偏移量是 0、4、8、16 和 24 吗?

第一项始终位于结构的开头(偏移量 0)。

char占用一个字节,所以下一个偏移量是 1。但是,它是double*4 字节对齐的(为了性能),所以它转到下一个 4 字节偏移量 4。在 x86(32 位)上,指针是4 个字节,所以下一个偏移量是 8,去哪里i

我知道 double 的字节大小是 8,int 是 4,但我认为 short 是 1?为什么它增加了 8 个,从 16 个增加到 24 个?

于 2012-11-13T05:14:55.293 回答