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

标签 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;

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

最佳答案

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

关于c - 初始化元素在加载时不可计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42306921/

相关文章:

javascript - 为什么 `HTMLelement.innerText` 添加换行符(\n)?

c++ - 模板 <类 T> 错误 : expected initialiser before 'template'

r - 在 R 中为引用类创建初始化方法

java - 无法访问枚举初始化程序中的静态字段

python - 在 Windows 中链接库

c - Unix - 共享内存

php - 如何设置自定义错误消息 zend 表单元素文件?

c - 重新定义typedef错误

c - 从 csv 读取,strtod 无法读取带有数字的字符串

javascript - 如何使用 jQuery 获取焦点元素?