Typedef struct

552 阅读1分钟

1.使用 Typedef struct 与 struct 定义结构体区别

区别就在于使用时,是否可以省去struct这个关键字

struct node
{  
    int a;
    struct node *next;
}

Typedef struct node
{  
    int a;
    NODE *next;
}NODE          //NODE 是node 的别名

2.C中strcut

在C中定义一个结构体类型时如果要用typedef:
typedef struct Student
{
   int no;
   char name[12];
}Stu,student;
于是在声明变量的时候就可:Stu stu1;或者:student stu2;(Stu 和student 同时为Student的别名)
如果没有typedef即:
struct Student
{
   int no;
   char name[12];
}Stu;
就必须用struct Student stu1;或者struct Stu stu1;来声明
另外这里也可以不写Student(于是也不能struct Student stu1;了)
typedef struct
{
   int no;
   char name[12];
}Stu;

3.C++中

在c++中如果用typedef的话,又会造成区别:
struct Student
{
   int no;
   char name[12];
}stu1;//stu1是一个变量

typedef struct Student2
{
   int no;
   char name[12];
}stu2;//stu2是一个结构体类型,即stu2是Student2的别名
使用时可以直接访问stu1.no
但是stu2则必须先定义 stu2 s2;
然后 s2.no=10;