c - 在 C 中初始化某个结构字段 on-initialization

标签 c string struct

我想在这里做的是用空字符串值 "" 初始化所有玩家的名字,我听说它可以在 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/

相关文章:

c - 结构输出显示错误

c - 难以理解链表的定义

python - 数数没有。标记化、停用词删除和词干提取后的标记数量

c - ATM机C语言

c - 用 Objective-C 包装一个 C 库 - 函数指针

c - 一个简单的 int 值的地址

c++ - 使用字符串作为条件时减少 else if 语句的方法

php - 如何使用php获取包含特殊字符的字符串的第一个字符?

c# - 将带有 char* 的结构编码到 C#

c - 共享内存未同步更新