C vs C ++ sizeof
我刚刚遇到这个简单的代码片段,想知道为什么当它由C编译器编译的时候,这个程序的输出是4而当它由C ++编译的时候,是8 。 
 #include <stdio.h> int x; int main(){ struct x {int a; int b;}; printf("%d", sizeof(x)); return 0; } 
  C ++输出是有理的( 8 = 4 + 4 = sizeof(xa) + sizeof(xb) ),但是C的输出不是。 那么, sizeof如何在C中工作呢? 
- C: https : //ideone.com/zj5Qd2
- C ++: https : //ideone.com/ZZ4v6S
似乎C比本地更喜欢全局variables。 这样对吗?
 在C中,像struct x { int a; int b; }; struct x { int a; int b; }; 没有定义typesx ,它定义了一个typesstruct x 。 所以,如果你删除int x; 全球,你会发现C版本不能编译。