回调函数、钩子函数

1、回调函数

1.1 下定义

回调函数是一个通过函数指针调用的函数。

1.2 好处

可以把调用者与被调用者分开。调用者不关心谁是被调用者,它需知道的,只是存在一个具有某种特定原型(如参数个数和类型)、某些限制条件(如返回值为 int )的被调用函数。

1.3 例子

https://blog.csdn.net/gaohua106/article/details/103425740

2、钩子函数

2.1 下定义

钩子函数实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。

2.2 好处

  • 钩子函数就是一种过滤机制,满足就执行(挂钩),不满足就不执行。

2.3 例子

2.3.1 函数指针+钩子函数
  • 让指针p先后指向a, b,这样,p就先后代表了不同变量的地址
int *p;
int a,b;
p = &a;
p = &b;
  • 同样地,函数的指针可以指向不同的函数,从而完成不同的功能
例如,定义函数指针:
int (* g_pFun) (int x, int y);
 
有两个函数:
/*返回两个参数中的最大值*/
int Max(int x, int y){
   }
 
/*返回两个参数中的最小值*/
int Min(int x, int y){
   }
 
int main(int argc, char* argv[]){
   
    int r;
    /*我们让函数指针先后指向不同的函数*/
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

还能坚持

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

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

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

打赏作者

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

抵扣说明:

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

余额充值