VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 2237|回复: 6

[原创] C++回调函数之我的理解

[复制链接]
51_avatar_middle
online_admins 发表于 2017-7-31 00:46:00 | 显示全部楼层 |阅读模式
今天一位会员问我回调函数是怎么回事?是一种什么机制,百度了一堆看了个大概,但还是感觉理解的不太透彻。于是我给他举了个小例子,打了个比较恰当的比喻,让他更容易理解回调函数的机制。

回调函数这个东西,一般是由提供者进行定义和声明,但是不是由提供者去调用。比如你写了个普通的函数,想将它作为回调函数,你把这个回调函数提供给了系统,那么你就是提供者,系统就是接受者,所以这个函数不是给你自己调用的,而是给接受者也就是系统来调用的。具体什么时候调用系统说了算。有点类似异步的意思。

我打个比喻:
比如说你从淘宝上买了个电脑,商家要给你用快递的形式邮寄过来。你不知道快递什么时候邮到,你还能每天去看么,或者说每小时去快递网点看一次吗?不太现实,也不可能,对不对?那么这时候你可以给快递网点提供一个你的电话联系方式,要是你的这个电脑的快递到货了之后直接打你这个电话就可以告诉你了,说电脑到货了,让过来自提。其实这里面你提供给快递网点的这个电话就相当于回调函数的意思,快递网点就相当于是系统,你自己呢就相当于是回调函数的提供者。

通过这个比喻,大家明白了吗?C++回调函数之我的理解




上一篇:C++中 struct 和 class 的区别
下一篇:成都老沈骑游 的报到帖!
85_avatar_middle
online_vip 发表于 2017-7-31 09:04:34 | 显示全部楼层
C++回调函数之我的理解大讲堂
51_avatar_middle
ico_lz  楼主| 发表于 2017-7-31 09:39:52 | 显示全部楼层

挖到你这篇帖子的回复了,哈哈
https://www.cctry.com/thread-246567-1-1.html
49_avatar_middle
online_vip 发表于 2017-7-31 10:34:01 | 显示全部楼层
这个说得很清楚了;
http://blog.csdn.net/callmeback/article/details/4242260/

这篇文章有说明mfc settimer函数是怎么使用回调函数的说明;
http://blog.csdn.net/u013541325/article/details/41143495

我感觉网友应该知道什么是回调函数,但是看到很多windows里面的函数莫名其妙的执行后不知道原因,实际上除了消息响应外就是回调函数了
51_avatar_middle
ico_lz  楼主| 发表于 2017-7-31 11:01:38 | 显示全部楼层
frr 发表于 2017-7-31 10:34
这个说得很清楚了;
http://blog.csdn.net/callmeback/article/details/4242260/

好久不见啊,范兄弟!C++回调函数之我的理解
85_avatar_middle
online_vip 发表于 2017-7-31 11:08:59 | 显示全部楼层
Syc 发表于 2017-7-31 09:39
挖到你这篇帖子的回复了,哈哈
https://www.cctry.com/thread-246567-1-1.html

我都不记得了C++回调函数之我的理解
47_avatar_middle
在线会员 发表于 2017-8-2 14:37:37 | 显示全部楼层
这个老大以前就说过了,回调是异步机制,写法特别,但是感觉没多大意义,说白了就是普通函数,就是有 个地址的方便
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-3-19 02:41

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表