函数指针

        对于这么的一个指针,首先我们还是从定义开始,定义一个指针 并取个名字叫pfun,(pfun),这个指针是指向一个函数的,这个函数的结构是:返回值是int类型的,,函数有两个参数也是int类型的,int (*pfun)(int, int); 由于这样的指针看上去会很复杂 所以我们一般将这种指针typedef一下:

typedef int (*int_pfun_int_int_t)(int, int); 

将这种类型的指针变量重新命名为int_pfun_int_int_t, 我们定义这种类型的指针时也会显得容易一些。说一下这种被指针所指向的函数,一般都称作为回调函数(callback)。C++中有一个东西叫try,用来作为异常处理的。对于我而言,这种callback也可以作为某种突发事件的处理。。

举例 :error_e UserTimerCreate(name_e name, time_t overTime, vid_pfun_void_t pfun);

        对于上面的函数解释一下:用来创建一个用户使用的定时器,返回值是一个错误状态码(enum),函数名UserTimerCreate, 第一个参数name 是用户定时器的名称(标识)(enum), 第二个参数overTime 这个定时器的定时时间, 第三个参数 pfun 第三个参数就是定时器时间到达(超时)的处理函数。这样使用的好处是什么嘞,就是说,用户其实可能会创建多个定时器,每个定时器创建的超时时间,以及每个定时器中断触发之后的想要干的事儿都不一样。如果不利用回调,就需要为每个定时器配上一个独立的API去提供给上层调用。我现在配置成统一的接口后,你用参数的方式传给我,接下来上层的代码你就不用操心我怎么给你调用,我下层的代码也不用担心调用的是哪个了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薇远镖局

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值