typedef和函数
函数指针一般用于回调,例如信号处理,libcurl等会应用到回调。回调是比较常用的技术,而回调就要涉及函数指针。
当我们的程序中有以下函数:
void printHello(int i);
然后我们要定义一个函数指针,指向printHello,并且调用这个方法,代码如下:
void (*pFunc)(int);
pFunc = &printHello;
(*pFunc)(110);
其中void (*pFunc)(int)是声明一个函数指针,指向返回值是void,调用参数是(int)的函数,变量名是pFunc,pFunc就是函数指针了,以前是函数指针的简单用法。
大家可以看到,声明一个函数指针是比较复杂的,尤其是当你要在多处地方声明同一个类型的函数指针变量,代码更加复杂,所以有下面简化的做法:
typedef void (*PrintHelloHandle)(int);
使用代码如下:
PrintHelloHandle pFunc;
pFunc = &printHello;
(*pFunc)(110);
以后其他地方的程序需要声明类似的函数指针,只需要下面代码:
PrintHelloHandle pFuncOther;
|