首页  >   经验  >   函数调用与回调函数的设计原理的深入对比分析

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

查看 codexia 的博客 2015-06-26 21:21:23 1953
函数   回调  
手机阅读 | 转发赚积分
手机收藏 | 分享给好友
简介函数调用对于学过编程的人来说,是太平常不过了。而回调函数又对学过编程的人来说,开始又是很痛苦的。两者是否有关系,有什么关系,看看本文,会让你恍然大悟的。

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

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

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

1.微信扫码
2.点击按钮,粘贴命令
自动刷新 手动刷新
命令:rd 13H/) 复制
提示:如果您发送了命令,自动刷新会展开全文。自动刷新最多60秒,超过60秒请点击手动刷新。
创作不易,汗水不止!为防止劳动果实被爬虫窃取,开启了反爬机制,需要您发送命令继续阅读。取关会再次出现此提示。一段时间后出现此提示,请再次发送即可。如有问题,请加客服微信Freeme007处理。感谢您的理解。
标注
评论
站内搜
百度搜
传送到手机
手机扫码,识别文字,完成传送x
加载中...
标注内容x
加载中...
添加标注x
文章标题:函数调用与回调函数的设计原理的深入对比分析
文章地址:http://www.cjjjs.com/article/6262015232121559
转载到个人博客,请在文末带上右侧内容(含超链接):本文转载自:函数调用与回调函数的设计原理的深入对比分析
收藏 0 点赞 0
公众号
微信赞赏
支付宝赞赏
领支付宝大红包
QQ群

相关阅读

  1. C++ Primer Plus 6th 2.7 编程练习题 第3题 函数调用反向编程练习 查找全网同类文章
  2. C++ Primer Plus 6th 2.6 复习题 第9题 函数原型信息 查找全网同类文章
  3. 函数的形参是函数指针,能设置默认值吗?如果能应该怎么写 查找全网同类文章
  4. 普通函数指针、类静态函数指针、类成员函数指针全面分析 查找全网同类文章
  5. 初学C语言(也是第一次接触编程),求问这个在使用函数指针中报的错是什么意思 查找全网同类文章
  6. [C++] 小疑问,运算符函数 new 是否需要使用异常捕获 查找全网同类文章
  7. 函数体定义如何放置如何布局比较合适 查找全网同类文章
  8. 动态链接库导出类和函数调用中遇到的问题 查找全网同类文章
  9. 奶茶同学带你玩函数指针 - 不定参数篇(上) 查找全网同类文章
  10. 奶茶同学带你玩函数指针 - 初见篇 查找全网同类文章
分享到:
分享文章[函数调用与回调函数的设计原理的深入对比分析]到QQ空间

相关阅读

猜您感兴趣