尝试使用 const 初始化变量时出现错误“初始化元素不是常量”

尝试使用 const 初始化变量时出现错误“初始化元素不是常量”,第1张

我在以下程序的第 6 行(将 my_foo 初始化为 foo_init)出现错误,我不确定我是否理解原因。

typedef struct foo_t {    int a, b, c;} foo_t;const foo_t foo_init = { 1, 2, 3 };foo_t my_foo = foo_init;int main(){    return 0;}

请记住,这是我正在处理的一个更大的多文件项目的简化版本。目标是在目标文件中有一个常量,多个文件可以用来初始化一个状态结构。因为它是一个资源有限的嵌入式目标,而且结构不是那么小,所以我不想要源的多个副本。我不想使用:

#define foo_init { 1, 2, 3 }

我也在尝试编写可移植的代码,所以我需要一个有效的 C89 或 C99 解决方案。

这是否与目标文件中的 ORG 有关?初始化变量进入一个 ORG 并通过复制第二个 ORG 的内容进行初始化?

也许我只需要改变我的策略,并有一个初始化函数在启动时完成所有副本。除非有其他想法?

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/read/1369993.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-15
下一篇 2022-06-15

发表评论

登录后才能评论
保存