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

萨拉胡丁

我想初始化一个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)。我检查了它的用户指南,但找不到这方面的任何信息。

瑞诗凯诗(Rishikesh Raje)

您提供的语法是正确的。指定的初始化列表是在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}
}; 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章