初始化元素在加载时不可计算

时间:2017-02-17 20:35:10

标签: c element initializer

从gcc 4.4.x升级到gcc 4.7.0后,我开始看到:

error: initializer element not computable at load time

以下代码段:

int prm_arr[] = {prm.field1, prm.field2, prm.field3};

此代码在gcc 4.4.x中运行良好。我尝试使用-std=c99选项,但它没有用。以下代码段可能有效

prm_arr[0] = prm.field1;
prm_arr[1] = prm.field2;
prm_arr[2] = prm.field3;

但是,是什么触发了这个错误?

1 个答案:

答案 0 :(得分:0)

在C89中,初始化列表必须是编译时已知的常量表达式。 (但它适用于C99)。因此,你所做的并不是正确的方法。您发布的第二个片段肯定会有用。