回调函数简介
回调函数简单来说就是函数A调用函数B,而函数B有一个参数是函数指针参数C,让B反过调用这个函数指针参数C调用其对应的函数。简单来说,就是一个函数调用另一个函数,被调用的函数的参数又是另一个函数。
C语言例子:
#include <stdio.h>
#include <stdlib.h>
/*callback fun1*/
int add(int a,int b)
{
printf("add\n");
return a+b;
}
/*callback fun2*/
int sub(int a,int b)
{
printf("sub\n");
return a-b;
}
/*中间函数*/
int cal(int a,int b,int(*func)(int,int))
{
return func(a,b);
}
int main(int argc,char *argv[])
{
int c;
c = cal(10,20,add);
printf("10 + 20 = %d\n",c);
c = cal(10,20,sub);
printf("10 - 20 = %d\n",c);
return 0;
}
运行结果:
在这里我定义了两个回调函数,分别实现加法与减法操作,定义了一个中间函数cal
,通过向此函数中的参数参数传递不同的函数指针,从而实现不同的函数函数结果。