程序小白
认证:优质创作者
所在专题目录 查看专题
不一样的宏定义(C语言小知识)
函数的调用和回调(OS小知识)
C语言指针数组(C语言小知识)
C语言中函数调用与堆栈详解
被C标准和编译器选项给狠狠的上了一课
extern "C" 的意义?——盘一下GCC!
作者动态 更多
小小调度器——开局default,优雅总藏于细节之中
04-02 09:23
小小调度器——调度器核心的纯C实现
04-01 14:09
小小调度器——原来C代码还能这么写,原作者没少挨打吧!
03-27 15:42
解析由系统库引发的hardfault血案(RT-Thread+ESP32)
2023-07-17 16:04
TINA瞬时现象仿真分析——运放缓冲器振铃
2023-02-28 11:38

函数的调用和回调(OS小知识)

  最近在看文章 ,被回调函数给难住了,以往都是函数的调用,这个回调又是啥意思,于是果断度娘,网上讲的其实挺专业的,有兴趣的童鞋可以自行百度,但是太专业了,有时候也比较迷糊,比如他会讲到回调函数主要是靠函数指针来实现的,度娘大概的举的一个很经典例子如下:

  假如你去商店买醋,结果到了以后售货员告知你卖光了,本来你打算就此回家的,售货员又讲,要不你把电话留下,等一来货,我给你打电话,你再来取货,于是你回家了,刚吃完午饭就来电话了,你又骑车去商店把醋买了,在这个过程中,你骑车去商店买醋等等一些列动作被封装成了函数,这个函数的名叫售货员来电,这个函数就是所谓的回调函数。

  什么是函数调用?

  非标准答案:函数的调用很好理解,以我们裸奔的main函数为例,在程序中你会调用各种各样的函数,也就是你定义的函数你调用,或者是别人定义的函数或者封装的函数库你直接拿来调用,这都叫函数调用。

  什么是函数回调?

  非标准答案:参考上面的main函数为例,那是一个完整的可执行的代码,而函数的回调往往是在一个半成品的代码,也就是main函数中定义了一个函数指针或者函数声明,但是没有函数的实现(即定义),函数的定义由别人提供,那么对于提供代码的人来讲,需要提供的函数叫回调函数,对于代码中需要执行该函数的操作叫做函数的回调。

  总结一下:函数的使用和定义都是由一个人完成的,这个函数叫做调用函数(或者就是函数),加入函数的定义和使用是由两个人完成的,一个只负责定义函数,一个只负责调用函数,那么这个函数叫做是回调函数。

  在我们GUI系统回调函数是最常用的应用,系统只会根据动作去回调相应的函数执行,而函数如何执行使我们的应用工程师去实现的内容。

  除了在GUI系统中应用最常见之外,还有一个很重要的场景就是系统的移植,那些需要系统在运行中去实现的跟具体的CPU和编译器相关的内容,也是大部分采用回调的方式来解决的。

   

   高亮部分是QF构架对于回调的定义。

   

      

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 8
收藏 8
关注 115
成为作者 赚取收益
全部留言
0/200
  • 星球居民-MpJKwDuF 2020-10-05 11:09
    支持
    回复
  • chaochao1545 2020-09-19 17:42
    不错哟!
    回复