如果我在运行以下程序时在不同编译器上获得不同的输出:
#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?
答案 0 :(得分:0)
C标准类型的大小(char
除外,其变体为1
)与实现有关,结构成员之间的填充量也是如此。