可能重复:
Why isn't sizeof for a struct equal to the sum of sizeof of each member?
大家好,
我想知道下面结构的大小是多少来的24.根据我的计算它应该是20.还有一件事是这种结构是否考虑到其变量t的大小?
请忽略任何语法错误,我在32位机器上
struct structc
{
char c;
double d;
int s;
} t;
main()
{
printf("sizeof(structc_t) = %d\n", sizeof(t));
}
答案 0 :(得分:6)
结构的大小包括由于打包对齐而在成员之间的填充字节,这是编译器和体系结构相关的(例如,请参阅here)
更新:毫不奇怪,这个问题是一个骗局。要获得更好的答案,请参阅Why isn't sizeof for a struct equal to the sum of sizeof of each member?。