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