Possible Duplicate:
Why double in C is 8 bytes aligned?
structure s{
char a;
double b;
int c;
}d;
d的大小是24。因为它是双字节的,所以是与8字节的边界对齐的。有人能解释为什么它是与8字节的边界对齐的,而不是与4字节的边界对齐的吗?我读到一些资料,所有的元素都是与这个大小对齐的?为什么会这样
最佳答案
对齐是实现定义的。
当对象类型有对齐要求时,它是一个小于或等于对象类型大小的值。类型的对齐方式通常与类型的大小相同。
当遵循IEEE-754时,通常对应于大小为8字节的double
IEEE-754
类型。