1

可能重复:
为什么 C 中的 double 是 8 个字节对齐的?

structure s{
    char a;
    double b;
    int c;
}d;

d 的 sizeof 是 24。结果是 double 与 8 字节边界对齐。任何人都可以解释为什么它与 8 字节边界而不是 4 字节边界对齐。我读到一些所有元素都对齐到那里的大小?为什么会这样

4

1 回答 1

1

对齐是实现定义的。

当对象类型有对齐要求时,它是一个小于或等于对象类型大小的值。类型的对齐方式通常与类型的大小相同。

遵循 IEEE-754 时double通常对应IEEE-754 binary648 字节大小的类型。

于 2012-10-15T13:20:11.523 回答