signal原型:返回值是函数指针的函数

回顾下《指针函数和函数指针深入剖析

函数指针:是一个指向函数的指针;

指针函数:是一个返回值是指针的函数;

 

返回值是函数指针的函数:是一个指针函数,它的返回值是一个指向函数的指针;

 

如何声明?

void (*func(char, int))(int);

声明一个函数,

函数名:func;

参数:一个char和一个int;

返回值:一个函数指针,该指针可指向一个"参数为int,返回值为void的"函数;

 

看起来很烦琐吧?那么,我们,可以让它简单点。

回顾下《typedef 详解

typedef void (*pFunc)(int);    // 定义一种数据类型,叫pFunc。

                                             // pFunc ,是一个函数指针,指向返回值是void,参数是 int的函数;

pFunc func(char, int);        // 返回值是pFunc 指针,参数是(char, int) 的函数

 

signal函数

signal函数的原型为:

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

signal函数有两个参数,一个是 int, 另一个是"指向返回值为void,参数为int的"函数指针;

signal函数返回值,是一个是"指向返回值为void,参数为int的"函数指针;

看起来也很繁琐吧?我们也让它看起来简单一点:

typedef void (*sighandler_t)(int);        // 定义一个"指向返回值为void,参数为int的"函数指针类型sighandler_t

sighandler_t signal(int signum, sighandler_t handler);        // signal函数的参数为一个int,一个sighandler_t,返回值是 sighandler_t

在linux下 man 2 signal 看下,喔,signal 函数,不就是这样么?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值