我在以下程序的第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的内容进行初始化?
也许我只需要改变自己的策略,并具有初始化功能即可在启动时完成所有副本。除非那里还有其他想法?