这种结构的大小出乎意料吗?

时间:2011-06-15 08:12:29

标签: c

  

可能重复:
  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)); 
} 

1 个答案:

答案 0 :(得分:6)

结构的大小包括由于打包对齐而在成员之间的填充字节,这是编译器和体系结构相关的(例如,请参阅here

更新:毫不奇怪,这个问题是一个骗局。要获得更好的答案,请参阅Why isn't sizeof for a struct equal to the sum of sizeof of each member?