浏览博客时看到这样一个函数,linux下的signal 函数:void ( *signal( int sig, void (* handler)( int )))( int );
虽说学过C语言但是看不懂啊!没学明白。研究了一下,记录下来吧。
一、定义函数指针
return_type (*func_pointer)(parameter_list)
普通指针变量的定义
int * p;
char * pointer;
类型的限定都在变量前面;
函数指针类型的限定是前后都有,前面是返回类型,后面是输入参数。
利用typedef 可以简化上面的表达方式。
typedef return_type (*FunctionPointer) (parameter_list);
FunctionPointer func_pointer;
这样是不是容易读了,和上面的功能一样,定义了一个返回类型为return_type ,输入参数为parameter_list的函数指针。
二、定义返回函数指针的函数
return_type(*function(func_parameter_list))(parameter_list)