[英]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 syntax
和missing ;
。
這樣做的正確方法是什么?
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.