C++回调函数
1. 什么是回调函数?
-
系统函数使用你的程序函数就叫回调。具体来说:
-
函数 F1 调用函数 F2 的时候,函数 F1 通过参数给函数 F2 传递了另外一个函数 F3 的指针,在函数 F2 执行的过程中,函数F2 调用了函数 F3,这个动作就叫做回调(Callback),而先被当做指针传入、后面又被回调的函数 F3 就是回调函数。
总结一句话就是:函数也可以作为函数的参数来传递
2. 为什么要使用回调函数?
#include<stdio.h>
#include<softwareLib.h> // 包含Library Function所在读得Software library库的头文件
int Callback() // Callback Function
{
// TODO
return 0;
}
int main() // Main program
{
// TODO
Library(Callback);
// TODO
return 0;
}
-
在回调中,主程序把回调函数像参数一样传入库函数。这样一来,只要我们改变传进库函数的参数,就可以实现不同的功能。把main()、Library()和Callback()函数套回前面 F1、F2和F3函数。
-
最主要的用途就是当函数不处在同一个文件当中,比如动态库,要调用其他程序中的函数就只有采用回调的形式,
-
如果需要降低耦合度的时候,更应该使用回调函数。
3. 怎么使用回调函数?
至少要有 3 种类型的函数
- 主函数:相当于整个程序的引擎,调度各个函数按序执行
- 回调函数:一个独立的功能函数,如输出数据函数
- 中间函数:一个介于主函数和回调函数之间的函数,登记回调函数,通知主函数,起到一个桥梁的作用