typedef 与 define类似,都是一种替代。
但不同点在于,typedef是在编译时进行替代,而define是在预编译阶段进行替代。
本文详细描述了typedef在函数指针方面的应用,其他typedef的应用相对而言更为简单,不做描述。
typedef函数指针的用法如下:
typedef int (*MYFUN)(int, int);
这种用法一般用在给函数定义别名的时候
typedef定义了一种新的类型,也就是MYFUN,定义它是一种指向函数的指针。函数类型是带两个int 参数, 返回一个int
在分析这种形式的定义的时候可以用下面的方法:
先去掉typedef 和别名, 剩下的就是原变量的类型.
去掉typedef和MYFUN以后就剩:
int (*)(int, int)
例子如下:
typedef char(*pFun)(int) //跟上一行功能等同
/*typedef的功能是定义新的类型。第一句就是定义了一种PTRFUN的类型,并定义这种类型为指向某种函数的指针,这种函数以一个int为参数并返回char类型。*/
char glFun(int a){return;}
void main()
{
pFun =glFun;
(*pFun)(2);
}
可以看到,pFun就是函数指针,指针指向的对象就是glFun。
然后利用取值符号,来获得函数体代码。