我试图环绕在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