可能重复: 为什么结构的大小不等于每个成员的大小之和?
大家好,
我想知道下面结构的大小是如何的。根据我的计算,应该是20,还有一件事,这个结构是否考虑了它的变量t的大小?
请忽略任何语法错误,我在32位机器上。
struct structc
{
char c;
double d;
int s;
} t;
main()
{
printf("sizeof(structc_t) = %d\n", sizeof(t));
} 发布于 2011-06-15 08:14:25
由于封装对齐方式,结构的大小包括is成员之间的填充字节,这与编译器和体系结构有关(参见这里中的示例)。
更新:并不奇怪,这个问题是个骗局。要获得更好的答案,请参见为什么结构的大小不等于每个成员的大小之和?。
https://stackoverflow.com/questions/6354846
复制相似问题