联合大小不是最大的数据类型?

时间:2015-02-27 15:28:38

标签: c sizeof unions

union大小是不是占用了它的元素的最大大小?它取12个字节而不是10个字节但是如果我在下面的代码中移除浮动而不是10个字节可以解释它吗?

 union u
 {
  char ch[10];
  //float f; 
 };
   int main()
  {
      union u var;
      printf("%d\n",sizeof(var));  // why size is 12 here why not 10 but if float is removed then size is 10 please explain?
   }

1 个答案:

答案 0 :(得分:0)

它依赖于所有实现,并且与对齐和填充有关。使用不同的编译器/版本/系统,它可能会完全不同。