使用非常量初始化程序定义全局变量

Vig*_*ino 6 c global-variables

#include <stdio.h>

int i=10;
int j=i;
int main()
{
    printf("%d",j);
}
Run Code Online (Sandbox Code Playgroud)

我得到一个错误,说明初始化元素不是常量?这背后的原因是什么?

Alo*_*ave 12

这背后的原因是什么?

C(与C++不同)不允许使用非常量值初始化全局值.

C99标准:第6.7.8节:

具有静态存储持续时间的对象的初始化程序中的所有表达式应为常量表达式或字符串文字.