我正在尝试理解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
};我想要按名称初始化结构的原因是我自己的结构有很多成员,所以我想要更清晰。我不应该只在单独的语句中初始化它们,因为这是一个性能敏感的嵌入式应用程序,其中的成员实际上是位字段,因此单个struct init生成的指令比多个成员初始化生成的指令要少。
哪个C标准允许像这样按名称命名成员init?
发布于 2011-07-15 23:08:41
现在还不清楚您要问的是什么,但是使用c99编译器,您的第一次尝试可以写成
struct
{
int a[5], b;
} game[] =
{
[0] = {.a = { 1 }},
[1] = {.a[0] = 2}
};https://stackoverflow.com/questions/6709027
复制相似问题