在结构上使用sizeof运算符

时间:2013-09-02 17:53:26

标签: c structure sizeof

为什么sizeof运算符在结构上使用时总是给出不同的字节数 比实际用于存储数据的结果(我期望的是什么)?

2 个答案:

答案 0 :(得分:1)

并不总是如此。它取决于编译器对结构的打包。 Paking取决于架构的对齐规则。

答案 1 :(得分:1)

来自THIS帖子

  

这是因为结构对齐。结构对齐是指   编译器将未使用的内存插入结构的能力   以便数据成员最佳地对齐以获得更好的性能。   许多处理器在存储基本数据类型时性能最佳   字节地址是它们大小的倍数。

     

通过将最大数据类型放在结构的开头,将最小的数据类型放在结构的末尾,可以最小化结构的大小