这是c的一种规定
例如:
int a = 0;
int b = a + 1;
int main(){}
这样就会出错,因为规定全局变量b不能在编译时确定,全局变量需要以常量形式初始化
所以需要改造成这样
int a = 0;
int b = 1;
int main(){}
原因:全局变量c的值不能在编译时确定,要在执行是确定(编译原理。。)为什么呢?因为这是标准:
C语言标准:全局变量(external variable)和静态变量 (static variable)的初始化式必须为常量表达式[1]
详细的内容可以看:
error:“initializer element is not constant” (gcc和g++编译器的关系)