看下面的代码:
#include <stdio.h>
int a = 1;
int b = 2;
int c = a+b;
int main() {
printf("c is %d\n", c);
return 0;
}gcc -o test test.c 编译时出现错误:initializer element is not constant
-----
原因: 全局变量c的值不能在编译时确定,要在执行是确定(编译原理。。)
解决办法:
#include <stdio.h>
int a = 1;
int b = 2;
int c; //只声明
int main() {
c = a + b; //在main函数里赋值
printf("c is %d\n", c);
return 0;
}
本文探讨了C语言中全局变量初始化时遇到的错误:初始元素不是常量,并提供了具体的代码示例及解决方法。通过将全局变量的赋值操作移至main函数内,可以避免此类编译错误。
2949

被折叠的 条评论
为什么被折叠?



