typedef 为C语言的关键字,作用是为一种数据类型定义一个新名字,这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。
常见用法如下:
typedef int fun; //把int重定义为fun,以后使用int时可以用fun代替
fun a;
要理解typedef void(*Func)(void)首先要搞懂函数指针概念,函数指针顾名思义就是一个指向函数的指针,
int (*fun)(int a,int b);
定义了一个指针fun,它的指向是一个返回值为int类型,有两个int类型的参数的函数,函数指针本身就是一个指针,当给这个指针赋值时,
int (*fun)(int a,int b);
int Compare(int a,int b)
{
if(a > b){
return 1;
}
else{
return 0;
}
}
int main(void)
{
fun = Compare; //把函数入口的首地址赋值给fun
}
函数指针就是指向代码段中函数入口地址的指针。
在理解了函数指针之后再看typedef void(*Func)(void),就是用Func重新定义了一个返回值为空,没有参数的函数指针类型,
typedef void(*Func)(void);
Func a b; //a和b分别都代表了返回值为空,参数列表为空的函数指针