尝试使用const初始化变量时出现错误“初始化元素不恒定”
我在以下程序的第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的内容进行初始化? 也许我只需要改变自己的策略,并具有初始化功能即可在启动时完成所有副本。除非那里还有其他想法?