到目前为止,我已经有了下面的代码,我非常确定我可以使用多个语句进行显式初始化,但是我想学习如何使用单个语句进行初始化。
#include <stdio.h>
#include <stdlib.h>
#define LUNCHES 5
int main(void)
{
struct Food
{
char *n; /* “n” attribute of food */
int w, c; /* “w” and “c” attributes of food */
}
lunch[LUNCHES],
lunch[0] = {"apple pie", 4, 100},
lunch[1] = {"salsa", 2, 80};
}
我想下面的方法行得通,但这是另一种说法。
int main(void)
{
struct Food
{
char *n; /* “n” attribute of food */
int w, c; /* “w” and “c” attributes of food */
}
lunch[LUNCHES];
lunch[0] = {"apple pie", 4, 100};
lunch[1] = {"salsa", 2, 80};
最佳答案
你就快到了:
= { [0] = {"apple pie", 4, 100}, [1] = {"salsa", 2, 80} }
将是数组的初始化。
只有当编译器支持C99附带的“指定”初始值设定项时,才会出现这种情况。
否则
= { {"apple pie", 4, 100}, {"salsa", 2, 80} }
也可以。