VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 2098|回复: 6

C++回调函数之我的理解

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

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

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

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




上一篇:《实用C++》第2课:C++语言概述
下一篇:《实用C++》第3课:VS2013基本使用

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

85_avatar_middle
online_vip kadingxiaodi 发表于 2017-7-31 09:04:34 | 显示全部楼层
C++回调函数之我的理解大讲堂

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

51_avatar_middle
ico_lz  楼主| Syc 发表于 2017-7-31 09:39:52 | 显示全部楼层

挖到你这篇帖子的回复了,哈哈
https://www.cctry.com/thread-246567-1-1.html

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

49_avatar_middle
online_vip frr 发表于 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  楼主| Syc 发表于 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 kadingxiaodi 发表于 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
在线会员 softcheng 发表于 2017-8-2 14:37:37 | 显示全部楼层
这个老大以前就说过了,回调是异步机制,写法特别,但是感觉没多大意义,说白了就是普通函数,就是有 个地址的方便

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

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

GMT+8, 2018-12-14 00:55

Powered by Discuz! X3.4

© 2009-2018 cctry.com

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