簡體   English   中英

使用位域初始化一個常量的struct數組

[英]Initialize a constant array of struct with bitfield

我想初始化一個const數組的結構。 這些結構有bitfield成員。

以下是我的代碼片段:

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 ;

這樣做的正確方法是什么?

UPDATE

我正在使用COSMIC編譯器( CXSTM8 )。 我檢查了它的用戶指南,但在這方面找不到任何信息。

您給出的語法是正確的。 指定的初始化列表在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}
}; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM