【发布时间】:2019-08-20 12:15:32
【问题描述】:
我想初始化一个const 结构数组。这些结构具有位域成员。
以下是我的代码的 sn-p:
typedef struct {
unsigned int a : 1;
unsigned int b : 1;
unsigned int c : 1;
} Character;
const static Character Char[] =
{
{.a = 0, .b = 0, .c = 1},
{.a = 0, .b = 1, .c = 0},
{.a = 1, .b = 0, .c = 1}
};
尝试这种方式时,我遇到了很多错误,例如 unexpected initialization syntax 和 missing ;。
这样做的正确方法是什么?
更新
我正在使用COSMIC 编译器 (CXSTM8)。我查看了它的用户指南,但找不到这方面的任何信息。
【问题讨论】:
-
你是如何构建代码的?什么是编译器标志?
-
这是一个嵌入式项目。我正在使用
COSMIC编译器 -
请edit您的问题添加信息,而不是在 cmets 中回答。编译器是否支持使用
.member = value进行结构初始化? -
为我编译。请生成minimal reproducible example
-
Initializer List 从 C99 开始引入。你有用 C99 编译的开关吗? Cosmic 编译器是否与 C99 兼容?
标签: c arrays struct bit-fields