函数调用与回调函数的设计原理的深入对比分析

2447 人浏览 | 时间: 2015-06-26 21:21:23 | 作者: codexia

    为什么我会想起分析这个话题呢?这是在我工作时与一同事在协调功能对接时用到了回调函数,让我受益匪浅。很久了,但是这个问题在昨天看COM编程的书中,里面又用到了回调函数机制。之前说总结一下的,后来一忙,就忘了。现在就提到这个了,我也发现了回调函数的魅力了,所以,赶紧总结一篇,与君共享。
    一开始我们学习回调函数,总是认知在系统提供回调函数,调用我们的函数,从而达到让我们可以控制部分行为。然而,工作时需要使用到这个机制了。因为同事做底层基础功能,所以,与我的功能模块交互。为了让基础库更通用,也让上层可以自由定制行为,最终采用了回调函数机制。而一开始,我只是觉得应该用函数调用来实现,后来明白后,才发现函数调用的不足之处。下面我来介绍一下函数调用和回调函数的机制对比,让你发现回调函数的魅力所在。不再会对回调函数又恐惧感,反而是无限的激动。
    我们以两个函数来说明。

/* - 第一种形式即函数调用。- */
void A()
{
    ...
    B();
    ...
}

     省略号代表其中执行了一些操作,然后调用B函数,最后在执行一些操作,A函数就执行完毕。这是简单的分析。让我们进一步分析。
    在外部函数调用A函数时,也就是执行A函数的代码。执行代码的意义,就是CPU会执行A函数生成的机器代码。从另一个角度来看,也就是,A函数此时控制了CPU的执行流程,即A函数有了控制权。在执行一段代码后,调用了B函数。此时,控制权就转移到B去了。最后,B函数返回后,控制权有返回到了A。最后执行完剩余的代码。
    我们来看看第二种形式,即回调函数。

请微信扫码阅读。
为防止恶意爬虫,
已开启反爬机制,
理解哟~~~~
标注
评论
站内搜
百度搜
传送到手机
手机扫码,识别文字,完成传送x
加载中...
标注内容x
加载中...
添加标注x
收藏 0 点赞 0

相关阅读