打印

什么是回调?

[复制链接]
3430|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
forsuccess|  楼主 | 2010-3-30 18:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
mohanwei| | 2010-3-30 18:53 | 只看该作者
貌似你现在就正在上网啊……

使用特权

评论回复
板凳
huangqi412| | 2010-3-30 19:01 | 只看该作者
貌似你现在就正在上网啊……
mohanwei 发表于 2010-3-30 18:53
;P

使用特权

评论回复
地板
hgjinwei| | 2010-3-30 19:22 | 只看该作者
楼主等着,楼下这就跑到你家去告诉你。

使用特权

评论回复
5
forsuccess|  楼主 | 2010-3-31 08:48 | 只看该作者
各位说笑了,请赐教,谢谢。

使用特权

评论回复
6
forsuccess|  楼主 | 2010-3-31 18:26 | 只看该作者
1.什么是回调函数?
     回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,
     当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。

2.为什么命名为回调函数?
    “回调”这两个字的来源:一般的函数调用是调用者调用接口实现功能,而这里却是调用者提供一个函数
     让实现者来调用从而完成想要的功能,即我调用你来调用我自己来实现功能,这就是所谓的“回调”。
                   调用者---调用---实现功能
                   调用者---提供---实现功能

3.为什么要引入回调函数?
  A.方便性:
      同一个函数,通过指针,指向同一类型的不同函数地址,调用统一类型的不同函数,大大增强了该函数的
      灵活性,不用写多个函数。如窗口处理过程。   
  
  B.程序结构化清晰:
      在音频处理函数中,留出回调函数接口,可以让音频函数结构比较好,不至于加入很多按键等处理消息。
      也许有人有疑问,  不用回调方式也可以!不用回调方式有时比较麻烦:调用其它函数,而其它函数可能
      根本不是自己处理的,不知道如何留接口,如何定义这个函数。而用回调函数则不必关心这个问题,只 需要定义一个 void *pFun; 然后定义一个函数 callback(pFun) 留做接口就行了。后面把函数的指针传进来强行转换就可以了。

使用特权

评论回复
7
highgear| | 2010-3-31 21:10 | 只看该作者
call back 的概念很简单,但是内涵很深刻。 当你知道 why 要用回调, 而且知道 when, where 时, 可以肯定你是一个高手了。mcu 的程序很简单, 很少用到回调, 也没有必要用。 在大型 c/c++ 程序中, call back 必不可少, 其实在VC, C++Builder, C#, VB 中的 event, 都是回调。与原生态的 c, C++一样,本质都是一个函数指针。

使用特权

评论回复
8
ejack| | 2010-4-1 08:08 | 只看该作者
从一个很狭隘的角度来说:
如果没有回调,那么中断函数势必干涉应用层。这是不可接受的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

70

帖子

0

粉丝