人生的意义,在人生之外,就如同工作的意义,在工作之外。 Cherish the people you meet everyday

回调函数实例

上一篇 / 下一篇  2010-07-29 12:22:35 / 个人分类:C++

5M}_$eL_y5f0什么是回调函数51Testing软件测试网[m m&[G0{Y&?

Z&A`/T E2S0
  简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。51Testing软件测试网oo ~0^"a8e&X6x

bb Am%}Vz8Dx0  为什么要使用回调函数?
5L7s"H wk2RL051Testing软件测试网+Tx;B;Yf/~ x{.RC
  因为可以把调用者与被调用者分开。调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型、某些限制条件(如返回值为int)的被调用函数。51Testing软件测试网A L a4l!g4Q#u w"x o

51Testing软件测试网oGZ B)j)S Ty

简单的说,就是程序A实现一个函数,这个函数的指针作为参数传给程序B,由B来调用这个函数,这时候,就说A的那个函数是回调函数callback function.51Testing软件测试网/bfQQ-\U(H*U,Q

DrHR r([?:]8[/}#F0#include <stdio.h>51Testing软件测试网7{AUnZg4@b
#include <stdlib.h>51Testing软件测试网B0U@;s mGn
#include <string.h>

.\i[P/y4S051Testing软件测试网Yvj_|&v,Q+Jc

 

)\iV{u CL.F#I$Y051Testing软件测试网8x A:qk~#v:f&Y-m(gMc

int callback()51Testing软件测试网\'S-\??5] i:^
{
| V'poj}2w0 printf("This is from callback function");
6a@S5N+U xQ5Z0 return 0;
;{ J}jFZ!MQ]0}

mq/t [{tV&abG'o0

+E#Ce O(Q$?|c0int callback2(int b)
5vg3Enc tV9[-^0{
#q+Y{Y;@Jg$mY0 printf("This is from callback function,%d",b);
s7Uc[(ceE0 return 0;51Testing软件测试网 o@s-X Ml6_9R
}51Testing软件测试网 |9Q7h d#`Y_{/[

51Testing软件测试网i7j2AuS\!R

int otherFun(int (*p)())51Testing软件测试网3e L x:w(}["x
{51Testing软件测试网|+w;ly!V$?
 (*p)();51Testing软件测试网 \jL8nQpFQ z
 return 0;51Testing软件测试网)Nw0^2\X,Zg'K
}51Testing软件测试网 y8Q0QHz Jk

UW#LX/m&{${ c0int otherFun2(int (*p)(int),int b)
s-swP+G D0{51Testing软件测试网"wXK)~+`
 (*p)(b);51Testing软件测试网~7} g+BM(S2P*l9i
 return 0;
jnbkBKP0}

#TM m$w}4p0

T&z7q7Pf {fQK.[5s,q0 

y C/Y}/{051Testing软件测试网 Jb n^9h

int main()51Testing软件测试网?%t9@J{,EHO&T
{51Testing软件测试网9W0E R)p~4d}

xf3_ i/iq0 otherFun(callback);51Testing软件测试网zry|/KWN
 otherFun2(callback2,4);

DX'Y!]'CH6m051Testing软件测试网Gvlo0NV"^

}

0wG:]j AHw0

8s\ XLmM0 

+N{6E]v(Sa0

TAG: callback 回调函数

 

评分:0

我来说两句

allenzgw

allenzgw

美国, 佛罗里达 Enjoy sand, sunshine, sailing.

日历

« 2024-04-14  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 163096
  • 日志数: 119
  • 图片数: 1
  • 书签数: 2
  • 建立时间: 2007-01-28
  • 更新时间: 2016-06-03

RSS订阅

Open Toolbar