从 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;
但是,是什么触发了这个错误?
最佳答案
在 C89 中,初始化列表必须是编译时已知的常量表达式。 (但它在 C99 中有效)。因此,您所做的不是正确的方法。您发布的第二个片段肯定有效。
关于c - 初始化元素在加载时不可计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42306921/