回调函数理解
目前我想用一种生活场景来描述一下回调函数
我是一个送外卖的,而你是一个吃客,我把我的电话号码给你,你饿了的时候给我打电话,告诉我吃什么送到哪里,我在半个小时内送到,至于我怎么来送,跑啊还是电瓶车哪怕开直升机,你不关心,当然至于你什么时候想吃,为啥想吃这个我也不关心,我只管按时送到。 这里我送外卖的本领就是被回调的函数,你通过我的电话号调用我,完成我所能干的事儿->送外卖,呵。
以下这段代码可以直接在 DEV C++ 上直接运行
#include "stdio.h"
int CallBack1(
void* A)
{
int a =
0;
a = *(
int*)A;
printf(
"我是回调函数 CallBack1\r\n");
printf(
"a = %d\r\n",a);
return 0;
}
int CallBack2(
void* A)
{
char a;
a = *(
char*)A;
printf(
"我是回调函数 CallBack2\r\n");
printf(
"b = %c\r\n",a);
return 0;
}
int (*CallBackFuntion)(
void* A) = &CallBack1;
int (*CallBackFuntion2)(
void* A) = &CallBack2;
void Test(
void * A,
int (*pCallBackFuntion)(
void*))
{
printf(
"先干点儿别的\r\n");
printf(
"回调\r\n");
pCallBackFuntion(A);
printf(
"回调完毕\r\n");
}
int main(
void)
{
int a =
3;
char b =
'b';
Test((
void*)&a,CallBackFuntion);
printf(
"\r\n");
Test((
void*)&b,&CallBack2);
}
代码的运行结果:
先干点儿别的 回调 我是回调函数 CallBack1 a = 3 我是回调函数 CallBack2 b = b 回调完毕
有人这么画
转载请注明原文地址: https://ju.6miu.com/read-4627.html