静态变量的初始化

时间:2016-01-17 13:35:16

标签: c variables initialization static-variables

static int i = 5;
static int j = i;

int main()
{
    return 0;
}

我正在用另一个在此之前声明的静态变量初始化静态变量,但我也变量了。请告诉我为什么这是错误。

2 个答案:

答案 0 :(得分:2)

您无法使用j初始化i,因为在编译时,编译器不会知道i的值。要分配值j = i,代码需要在运行时执行。在C中初始化全局或静态时,编译器和链接器需要一起工作以创建内存布局。编译器会给出值和链接器需要给出变量的地址。 以下代码将起作用:

static int i = 5;
static int j;

int main()
{
    j=i;    
    return 0;
}

答案 1 :(得分:0)

如果这是一个真实案例,您可能应该明确初始化它们。