结构体写法(Struct)

一、 结构体

struct stu{
    char *name;   //姓名
    int num;      //学号
    int age;      //年龄
    char group;   //所在小组
    float score;  //成绩
} stu1;     //定义结构体类型的同时定义结构体变量
/*
 *其他写法:
 * ①                                            //先定义结构体类型,再定义结构体变量。
 * struct stu{
    char *name;   //姓名
    int num;      //学号
    int age;      //年龄
    char group;   //所在小组
    float score;  //成绩
   };
   struct stu stu1, stu2;

   ②
   struct {
    char *name;   //姓名
    int num;      //学号
    int age;      //年龄
    char group;   //所在小组
    float score;  //成绩
   }stu1, stu2;

   ③                                           
   typedef struct student{
    char *name;   //姓名
    int num;      //学号
    int age;      //年龄
    char group;   //所在小组
    float score;  //成绩       
   }stu;
   stu stu1;

   ④                                            //常用
   typedef struct{
    char *name;   //姓名
    int num;      //学号
    int age;      //年龄
    char group;   //所在小组
    float score;  //成绩       
   }stu;
   stu stu1;
   
 */

二、匿名结构体\联合体

union coat_t{
    uint8_t tshirts;
};

struct face_t{
    uint8_t nose;
    uint8_t eye;
};

struct person_t{
    uint8_t hand;
    uint8_t leg;
    struct face_t face;
    struct{
        uint8_t heart;  //匿名结构体
    };
    union coat_t coat;
    union{
        uint8_t jeans;  //匿名联合体
    };
};

int main()
{
    SetSysClock(CLK_SOURCE_PLL_60MHz);

    struct person_t person;

    person.hand = 1;
    person.leg;
    person.face.eye;
    person.heart;       //匿名结构体
    person.coat.tshirts;
    person.jeans;       //匿名联合体
    PRINT("hand = %x\r\n", person.hand);
    PRINT("stomach = %x\r\n", person.heart);

    while(1);
}

 

posted @ 2023-12-19 14:27  SweetTea_lllpc  阅读(110)  评论(0编辑  收藏  举报