我想在这里做的是用空字符串值 ""
初始化所有玩家的名字,我听说它可以在 C99 的声明点完成,但我不完全确定如何。
typedef struct data_players
{ char name[25];
int hp;
int mana;
int id;
}player;
player player_list[10]
在这种情况下我应该如何处理?
最佳答案
struct data_players
{ char name[25];
} player = "";
或
struct data_players
{ char name[25];
} player = { "" };
这会在声明时初始化结构的第一个成员。如果成员较多,则用逗号分隔。 还有一件事。您的结构不应该在声明时进行类型定义来进行这种初始化。
如果你有一个结构数组并且你想在 C99 中初始化它们,你可以在声明时使用“指定初始化器”。
player arr [2] = { {.name = ""}, {.name = ""} };
这会将 arr[0]
和 arr[1]
的名称成员初始化为空字符串。虽然我认为它没有多大意义,因为它默认为空字符串。
关于c - 在 C 中初始化某个结构字段 on-initialization,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30197515/