关于匿名结构的学习总结

匿名结构(C11)

匿名结构是一个没有名称的结构成员,为了了解他的工做原理,咱们应该先考虑如何建立嵌套结构:web

//第一个结构
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):svg

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的成员,删除嵌套结构。