结构变量初始化简写
Structure variable initialization in short way
正在尝试以短方式用值初始化结构变量字段:
typedef struct
{
int id = 0;
char* name = "none";
}employee;
employee e =
{
.id = 0 ;
.name = "none" ;
};
e
初始化时出错:
Error expected ‘}’ before ‘;’ token
Note to match this ‘{’
Error could not convert ‘{0}’ from ‘<brace-enclosed initializer list>’ to ‘employee’
为什么我会收到错误信息以及如何解决这个问题?
在 C 中,您不能在结构定义中初始化数据成员。所以你必须写
typedef struct
{
int id;
char* name;
}employee;
另外列表初始化中的分隔符是逗号。
employee e =
{
.id = 0,
.name = "none",
};
或
employee e =
{
.id = 0,
.name = "none"
};
正在尝试以短方式用值初始化结构变量字段:
typedef struct
{
int id = 0;
char* name = "none";
}employee;
employee e =
{
.id = 0 ;
.name = "none" ;
};
e
初始化时出错:
Error expected ‘}’ before ‘;’ token
Note to match this ‘{’
Error could not convert ‘{0}’ from ‘<brace-enclosed initializer list>’ to ‘employee’
为什么我会收到错误信息以及如何解决这个问题?
在 C 中,您不能在结构定义中初始化数据成员。所以你必须写
typedef struct
{
int id;
char* name;
}employee;
另外列表初始化中的分隔符是逗号。
employee e =
{
.id = 0,
.name = "none",
};
或
employee e =
{
.id = 0,
.name = "none"
};