匿名结构(C11)
匿名结构是一个没有名称的结构成员,为了了解他的工作原理,我们应该先考虑如何创建嵌套结构:
//第一个结构
struct names
{
char first[20];
char last[20];
};
//第二个结构
struct person
{
int id;
struct names name; //嵌套结构成员
};
//初始化嵌套结构
struct person ted = {8483,{"Ted","Grass"}}; //访问names的成员:ted.name.xxx;
接下来让我们看一下匿名结构(C11中,可以使用嵌套的匿名结构定义person):
struct person
{
int id;
struct
{
char first[20];
char last[20];
};
};
//初始化Ted的方式相同:struct person ted = {8483,{"Ted","Grass"}};
//但是访问ted时简化了步骤,只需把first看做是person的成员那样使用它,如:
//puts(ted.first);
//当然也可以把first和last直接作为person的成员,删除嵌套结构。