为什么不能用其他变量的值初始化静态变量?

时间:2015-04-12 00:52:23

标签: c compiler-errors

这是什么原因?

const int a = 0;
static int b = a * 5;  // compile error
int main()
{
    const int x = 1;
    static int y = x * 10;  // compile error
}

1 个答案:

答案 0 :(得分:2)

根据C标准:

  

具有静态或线程存储持续时间的对象的初始值设定项中的所有表达式   应该是常量表达式或字符串文字。

这是有效的C ++代码。