回调函数解析与示例

回调函数是指用户自己声明并实现一个函数,然后把这个函数名作为参数传入另一个函数(别人定义或者系统库函数)中,由别人(或系统)的函数在运行时来调用的函数。函数是用户实现的,但由别人(或系统)的函数在运行时通过参数传递的方式调用,这就是所谓的回调函数。简单来说,就是由别人的函数运行期间来回调你实现的函数。

另一方面,也可以说回调函数是高层函数,由用户根据需求定义实现;用户将该函数作为参数传入到底层函数(库函数或者系统函数);在一定条件下,系统库函数在执行时返回来调用高层函数,这样的一个过程就称为“回调”。其中:

  • “用户将该函数作为参数传入到底层函数(库函数或者系统函数)”这一过程叫做注册
  • “在一定条件下,系统库函数在执行时返回来调用高层函数”这一过程叫做“回调”。

回调函数解析与示例

接下来举个简单的例子:

#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;
}

回调函数解析与示例