免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: 人形鬼影
打印 上一主题 下一主题

[C] 大牛帮忙讲解下回调函数吧,一直搞不懂 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2015-08-27 14:42 |只看该作者
知道了  ^_^回复 9# seanking1987


   

论坛徽章:
0
12 [报告]
发表于 2015-08-28 15:02 |只看该作者
本帖最后由 serenemoon 于 2015-08-28 15:07 编辑

我的理解:
两个人,一个人叫Server,一个人叫Client。
Server确定的知道自己会遇到一些特定的事件,                         //虽然不确定这些事件会在什么时间发生
    而且他每遇到一个特定的事件就拿出该事件对应的一张卡片,     //他会遇到特定的事件,身上就有对应张卡片,暂且认为这假设是真的
    然后他会看看这个卡片上面写了些什么,
          然后呢就会按照这张卡片上的指示去完成纸片上的‘‘要求’’, // 通常Client会告诉Server遇到哪种事件要做什么事情
          但如果纸片上什么都没写,那就当这个事件没有发生好了。 // 当然Client也可以忽略Server可能会遇到的某些事件,Server就当其没发生好了。

Client在知道Server会遇到哪些事件后,                                  // 比如图形编程的话,每个控件可能会触发的事件,单击、双击、键入字母等等
    会根据自己的需求,在特定事件对应的卡片上写上去‘‘要求’’,    // 这通常就是把Client自己写的一个函数名,通过调用Server给的API传递给Server,Server会把函数名写在卡片上,遇到事件时再去执行这个函数。
    如果Client对特定事件不感冒,那Client就不管这个事件了。     // 我也不晓得Server在遇到卡片上没写要求时是否有默认的操作,但这都是Server的设计者应该考虑的问题。

如果有一个人(Server)他什么都不管,
      只是会在每天的 7:00, 12:00, 18:00 看一下自己身上带着的3张卡片,//特定的事件
      然后依卡片指示去做相应的事情,              // 执行事件对应的要求
      而且他身上还带了一支笔和橡皮,              // 往卡片上写要求要用到,即设置回掉函数的API
      别人可以往卡片上写要求,也可以擦出要求。// 把自己的需求写到卡片上,即把要求写成个函数,再把调用API把函数名告诉Server。

我觉得就是这个样子了。

PS:忘了说了,上面写到的 ‘‘要求’’ 其实就是 回调函数。
callback: it means "I am going to sleep for a while, when 'something' happens, just call me back, and I will take care of 'something'."
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP