从不同的C编译器获取不同的输出

时间:2015-09-01 08:47:50

标签: c

如果我在运行以下程序时在不同编译器上获得不同的输出:

#include <stdio.h>
void main()
{
  struct s
  {
    int a;
    char b;
  } s1, s2;

  int x = sizeof(s1);
  printf("%d", x);
}

OUTPUT(Turbo c):

(int 2 + char 1 = 3)

我在这里得到3分。

OUTPUT(代码块):

8

为什么在这里输出8?

1 个答案:

答案 0 :(得分:0)

C标准类型的大小(char除外,其变体为1)与实现有关,结构成员之间的填充量也是如此。