首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >尝试使用常量初始化变量时出现错误"initializer element is not constant“

尝试使用常量初始化变量时出现错误"initializer element is not constant“
EN

Stack Overflow用户
提问于 2010-06-12 01:55:27
回答 3查看 306.3K关注 0票数 215

我在下面程序的第6行(将my_foo初始化为foo_init)收到一个错误,我不确定我是否理解了原因。

代码语言:javascript
复制
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;
}

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

代码语言:javascript
复制
#define foo_init { 1, 2, 3 }

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

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

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

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3025050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档