我試圖環繞在http://publib.boulder.ibm.com/infocenter/lnxpcomp/v7v91/index.jsp?topic=%2Fcom.ibm.vacpp7l.doc%2Flanguage%2Fref%2Fclrc03strin.htm提供的語法我的頭:名爲成員初始化結構
struct
{
int a[5], b;
} game[] =
{
[0].a = { 1 },
[1].a[0] = 2
};
理想情況下,我會找到某種方式來做到以下幾點:
struct
{
int a, b;
} foo =
{
.a = 4,
.b = 5
};
我想要對結構進行名稱初始化的原因是我自己的結構有許多成員,所以我希望更清晰。我不應該在單獨的語句中初始化它們,因爲這是一個性能敏感的嵌入式應用程序,其成員實際上是位域,因此單個結構體init會生成比多個成員體初始化更少的指令。
哪個C標準允許這樣的名稱成員初始化?
我懷疑它是C99,可惜的是,HiTech和C18似乎都不支持這種語法。 – Reinderien