在尝试用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的内容进行初始化?
也许我只需要改变我的策略,让一个初始化函数在启动时完成所有的副本。除非有其他的想法?