回调函数解析与示例
回调函数是指用户自己声明并实现一个函数,然后把这个函数名作为参数传入另一个函数(别人定义或者系统库函数)中,由别人(或系统)的函数在运行时来调用的函数。函数是用户实现的,但由别人(或系统)的函数在运行时通过参数传递的方式调用,这就是所谓的回调函数。简单来说,就是由别人的函数运行期间来回调你实现的函数。
另一方面,也可以说回调函数是高层函数,由用户根据需求定义实现;用户将该函数作为参数传入到底层函数(库函数或者系统函数);在一定条件下,系统库函数在执行时返回来调用高层函数,这样的一个过程就称为“回调”。其中:
- “用户将该函数作为参数传入到底层函数(库函数或者系统函数)”这一过程叫做注册。
- “在一定条件下,系统库函数在执行时返回来调用高层函数”这一过程叫做“回调”。
接下来举个简单的例子:
#include <iostream>
#include <stdio.h>
using namespace std;
typedef void(*Func)();
Func pf;
//注册函数
void registerFunc(Func func)
{
pf = func;
}
//用户自己定义的函数
void myFunc()
{
printf("This is my function\n");
}
int main()
{
//1.注册回调函数
registerFunc(myFunc);
//2.调用底层函数
pf();
system("pause");
return 0;
}