gpt4 book ai didi

c - 用位域初始化结构常量数组

转载 作者:太空宇宙 更新时间:2023-11-04 01:43:52 26 4
gpt4 key购买 nike

我想初始化一个 const 结构数组。这些结构具有位域成员。

以下是我的代码片段:

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 syntaxmissing ;

正确的做法是什么?

更新

我正在使用 COSMIC 编译器 (CXSTM8)。我查看了它的用户指南,但找不到这方面的任何信息。

最佳答案

你给出的语法是正确的。 designated initializer list 是在 C99 中引入的。

如果你的编译器不支持这个,你需要寻找下一个最佳选择。即初始化位域中的所有成员。

typedef struct {
unsigned int a : 1;
unsigned int b : 1;
unsigned int c : 1;
} Character;

const static Character Char[] =
{
{0, 0, 1},
{0, 1, 0},
{1, 0, 1}
};

关于c - 用位域初始化结构常量数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57573460/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com