#include <stdio.h>
int foo()
{
return 50;
}
int main()
{
static int a = foo();
printf("%d\n", a);
return 0;
}
上面这段代码,我用 g++ 编译可以通过,程序也可以正常输出 50,
用 gcc 编译就编译失败了,为什么?
巴扎黑2017-04-17 14:40:18
c99标准里
4 All the expressions in an initializer for an object that has static storage duration shall be constant expressions or string literals.