回调函数理解

    xiaoxiao2021-03-25  129

    回调函数理解

    目前我想用一种生活场景来描述一下回调函数

    我是一个送外卖的,而你是一个吃客,我把我的电话号码给你,你饿了的时候给我打电话,告诉我吃什么送到哪里,我在半个小时内送到,至于我怎么来送,跑啊还是电瓶车哪怕开直升机,你不关心,当然至于你什么时候想吃,为啥想吃这个我也不关心,我只管按时送到。 这里我送外卖的本领就是被回调的函数,你通过我的电话号调用我,完成我所能干的事儿->送外卖,呵。

    以下这段代码可以直接在 DEV C++ 上直接运行

    // 深刻理解回调函数 // Call Back Function demo . #include "stdio.h" //* 回调函数1.数据类型对应 int. int CallBack1(void* A) { int a =0; a = *(int*)A; printf("我是回调函数 CallBack1\r\n"); printf("a = %d\r\n",a); return 0; } //* 回调函数1.数据类型对应 char. 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"); } //* Test 测试回调过程. 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

    最新回复(0)