我在以下程序的第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的内容进行初始化?
也许我只需要改变我的策略,让一个初始化函数在启动时完成所有的复制。除非还有别的办法?