定义一个返回函数指针的函数,如果直接定义理解起来稍微有点困难。比如:
extern void (*interruptf(int sig, void *func(int)))(int);
定义了一个函数interruptf;
这个函数的参数有两个,分别是int型的sig和一个函数指针(这个函数指针的返回值是void,参数是int型);
这个函数的返回值是一个函数指针(这个函数指针的输入参数是int型,这个函数的返回值是void);
该函数还有另外一种定义方式,这种方式可读性较强:
typedef void (*interrupt_fun_t)(int);
extern interrupt_fun_t interruptf(int sig, interrupt_fun_t func);
这里首先定义了一个函数指针的类型,然后用这个类型定义函数。这个函数定义看起来就和普通的函数定义没什么区别啦!