回调函数

Posted zhouxingyu1993

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了回调函数相关的知识,希望对你有一定的参考价值。

一、什么是回调函数?

看了很多版本的解释,终于明白了所谓的回调就是函数A调用函数B并将函数C作为参数传给函数B,并由函数B进行调用的过程,所以这里的函数C就是回调函数。

具体的执行过程可以见下图:

技术图片

 

 看图中的执行过程咋一看和我们正常的函数执行流程没有什么大的区别,但实际的实现效果却可以因为函数C的不同而千差万别。很多时候对于A->B->C的调用,正常都会在函数B中直接调用C,但是对于不同的应用场景却可能需要在B中调用C、D、E甚至F等等函数。而采用了回调后,却可以由调用者直接根据调用的场景不同选择传入不同的函数进入B中,从而增加了函数的复用、避免了在函数B中出现诸多分支而不易维护的场景。

 

二、回调函数实现的机制

  (1)定义一个回调函数;

  (2)提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者;

  (3)当特定的事件或条件发生的时候,调用者使用函数指针调用回调函数对事件进行处理。

以上是关于回调函数的主要内容,如果未能解决你的问题,请参考以下文章

同步回调函数与异步回调函数

回调函数是啥意思 啥是回调函数

Qt回调函数

函数名作为参数传递与回调函数

回调函数注册需要上下文吗

回调函数Java接口回调 总结