什么是回调函数精讲

末蓝、 2022-12-08 12:53 308阅读 0赞

这个问题一直很模糊,知道遇见了博主的文章才让我恍然大悟。

参考博文:

博文地址:https://blog.csdn.net/yilovexing/article/details/93192484

回调函数通俗易懂的例子

你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。

在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做 触发回调事件,店员给你打电话叫做 调用回调函数,你到店里去取货叫做 响应回调事件。

通过上面的例子我们有了以下几点概念
  • 主函数:相当于整个程序的引擎,调度各个函数按序执行
  • 回调函数:一个独立的功能函数
  • 中间函数:一个介于主函数和回调函数之间的函数,登记回调函数,通知主函数,起到一个桥梁的作用

在中间函数调用回调函数的时候,我们需要把回调函数当作参数来传递,那么就需要用到函数指针,下面以一个例子来详细了解。

  1. #include <stdio.h>
  2. /*回调函数1*/
  3. int callBack1(int x)
  4. {
  5. return x*2;
  6. }
  7. /*回调函数2*/
  8. int callBack2(int x)
  9. {
  10. return x/2;
  11. }
  12. /*中间函数*/
  13. int calc(int b,int (* func)(int)) //func 把函数当作参数来进行传递
  14. {
  15. return 100+func(b);
  16. }
  17. int main()
  18. {
  19. int a=100;
  20. /*调用回调函数1*/
  21. int q=calc(20,callBack1);
  22. printf("%d\n",q);
  23. /*调用回调函数2*/
  24. int p=calc(40,callBack2);
  25. printf("%d\n",p);
  26. return 0;
  27. }

运行结果:
在这里插入图片描述

我们跟着代码来分析一下代码流程

1、主函数需要调用回调函数

2、中间函数登记回调函数

3、触发回调函数事件

4、调用回调函数

5、响应回调事件

发表评论

表情:
评论列表 (有 0 条评论,308人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java中的函数什么?

    在Java中,回调函数是一种常见的编程模式,也称为回调机制。它允许将一段代码作为参数传递给另一个方法,并在需要时执行。回调函数通常用于异步编程或事件处理,可以将程序的控制权转移

    相关 什么函数

    1 定义和使用场合 回调函数是指 使用者自己定义一个函数,实现这个函数的程序内容,然后把这个函数(入口地址)作为参数传入别人(或系统)的函数中,由别人(或系统)的函数在运行时

    相关 什么事件

    第一次听见事件回调是在看netty那本书时书中所提到的,这一次又看到了相关概念,决定进行一个挖掘和学习: 回调的分类:   同步回调   异步回调 同步回调是在事件发生