关于C语言中的typedef

时间:2023-12-17 15:18:14

在C语言中定义一个结构体,要最好使用typedef,使用typedef,实际上就是为我们的结构体起了一个新的名字,即定义了一个新的类型,在后面书写自己代码的时候,就可以直接使用自己定义的新的类型第一变量。

例如

#include<stdio.h>
typedef struct
{
int num;
struct Node *next;
}Node;
int main()
{
Node n;
n.num=111;
printf("%d",n.num);
return 0;
}

  通过使用Typedef,我们定义结构体为新的结构类型——Node,后面使用时,可以直接使用Node定义变量。

  

#include<stdio.h>
struct Node
{
int num;
struct Node *next;
};
int main()
{
struct Node n;
n.num=111;
printf("%d",n.num);
return 0;
}

  但是,没有typedef时,我们在后面声明变量时,一定要指明Node是一个结构体,否则,编译器不知道Node类型变量的存在。

  总之,在C语言中,typedef就是为struct XX起一个别名,方便后面书写。

  

  但是在C++中,就没有这种要求。

  

#include<iostream>
using namespace std;
struct Node
{
int num;
Node *next;
};
int main()
{
Node n;
n.num=111;
cout<<n.num;
return 0;
}

  可见,在C++中,只要一次声明了结构体作为新的类型,后面便可以直接使用。