人生的意义,在人生之外,就如同工作的意义,在工作之外。
Cherish the people you meet everyday
回调函数实例
上一篇 /
下一篇 2010-07-29 12:22:35
/ 个人分类:C++
5M}_$eL_y5f0什么是回调函数?51Testing软件测试网[m m&[G0{Y&?
Z&A`/TE2S0 简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。51Testing软件测试网oo ~0^"a8e&X6x
bbAm%}Vz8Dx0 为什么要使用回调函数?
5L7s"H
wk2RL051Testing软件测试网+Tx;B;Yf/~x{.RC
因为可以把调用者与被调用者分开。调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型、某些限制条件(如返回值为int)的被调用函数。51Testing软件测试网A
L a4l!g4Q#u w"xo
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@;smGn
#include <string.h>
.\i[ P/y4S051Testing软件测试网Yvj_|&v,Q+J c
)\iV{uCL.F#I$Y051Testing软件测试网8xA:qk~#v:f&Y-m(gMcint 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#CeO(Q$?|c0int callback2(int b)
5vg3Enc
tV9[-^0{
#q+Y{Y;@Jg$m Y0 printf("This is from callback function,%d",b);
s7Uc[(ceE0 return 0;51Testing软件测试网o @s-XMl6_9R
}51Testing软件测试网
|9Q7h
d#`Y_{/[
51Testing软件测试网i7j2AuS\!Rint otherFun(int (*p)())51Testing软件测试网3e Lx:w(}["x
{51Testing软件测试网|+w;ly!V$?
(*p)();51Testing软件测试网 \jL8nQpFQz
return 0;51Testing软件测试网)Nw0^2\X,Zg'K
}51Testing软件测试网 y8Q0QHzJk
U W#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}
#TMm$w}4p0T&z7q7P