关于C/C++函数指针声明的理解(2)

那么,signal函数的参数又是如何呢?signal函数接受两个参数:一个整型的信号编号,以及一个指向用户定义的信号处理函数的指针。我们此前一定定义了指向用户定义的信号处理函数的指针sfp:

void (*sfp)(int);

sfp的类型可以通过将上面的声明中的sfp去掉而得到,即 void(*)(int)。此外,signal函数的返回值是一个指向调用前的用户定义信号处理函数的指针,这个指针的类型与sfp指针类型一致。因此我们可以如下声明signal函数:

void (*signal(int,void(*)(int)))(int);

同样地,使用typedef可以简化上面的函数声明:

typedef void (*HANDLER)(int);

HANDLER signal(int , HANDLER);

OK,对函数指针的理解到此结束。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/9dd2d222541bc23b5b61788224b5e559.html