typedef 的作用不是定义一个新的类型而是为一个类型增加与之相关的声明方法。
可以用理解定义变量的方式来理解typedef。
下面用三个例子来说明:
例一、
typedef int MYINT;
1.可以先不看typedef,首先理解为 int MYINT; 定义了一个整形变量MYINT。
int MYINT;
2.加上typedef,那么定义的整形变量MYINT就转换为可以定义整形变量的关键字。
例二、
typedef struct A
{
int b;
int c;
}D;
1.首先去掉typedef,定义了一个结构体变量D。
struct A
{
int b;
int c;
}D;
2.加上typedef 就可以理解为D是可以定义struct A类型变量的关键字。
例三、
typedef void(*FP)(void);
1.首先去掉typedef
void (*FP)(void);
声明了一个函数指针。
2.加上typedef,FP就变成了可以声明返回值为void,无参数类型的函数指针的关键字。