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;
/*我们让函数指针先后指向不同的函数*/