人生的意义,在人生之外,就如同工作的意义,在工作之外。
Cherish the people you meet everyday
回调函数实例
上一篇 /
下一篇 2010-07-29 12:22:35
/ 个人分类:C++
51Testing软件测试网!OD1~7@N(hT9yf+aJ什么是回调函数?
d
vN ?,Y!m;F0
.P'R0n.H0v+I0 简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。
,ErDs_YP|051Testing软件测试网w"l%Y J3p
为什么要使用回调函数?
{#Wd-A8ni0
#V
x?f`C]0 因为可以把调用者与被调用者分开。调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型、某些限制条件(如返回值为int)的被调用函数。51Testing软件测试网4{@a.pAw"xF
3n4p
gt:O,XvzkA0简单的说,就是程序A实现一个函数,这个函数的指针作为参数传给程序B,由B来调用这个函数,这时候,就说A的那个函数是回调函数callback function.
#vXP*r[1d?|0%eM@Z.c?H0#include <stdio.h>51Testing软件测试网R%`{6WP.T-s#x
#include <stdlib.h>51Testing软件测试网5m-r` q&cs
#include <string.h>51Testing软件测试网Q Xy+Zt$J
51Testing软件测试网Ygpx!bB\7K
*w/{+L%A[ ~K:W.h0#zEK"M
XB0int callback()
;Vs0B*{
z:f"gnh0{
-L-|^B?j0 printf("This is from callback function");
X,sO-v z*A.M$@5Ia0 return 0;
]
g|
D+V*Z0}
;n'ik*{6J V[G^051Testing软件测试网'CP8]o-BF/m e%@wgUint callback2(int b)51Testing软件测试网Sp ~0D+D t@'u
{
*eXdfXWY0 printf("This is from callback function,%d",b);51Testing软件测试网)b#i]"_ m
return 0;51Testing软件测试网7G9?5\1S;_\^9W){L
}
@e4p c&qR"os051Testing软件测试网T P\/k3V){int otherFun(int (*p)())51Testing软件测试网%\&SkVkk
{51Testing软件测试网 Hw'Vs e ?]
(*p)();
#v+p7w8d2{n0 return 0;51Testing软件测试网KE
_Htc.R%oB k
}
$XU"ty&_8bCn0%meM5oEU"TV }0int otherFun2(int (*p)(int),int b)
-Z u v?| K
]0{51Testing软件测试网J.xk
lGu6Vg5\
(*p)(b);
.GR:cM.I}yQ0 return 0;
;U
u%f#t9x*q
k0}51Testing软件测试网*i C%i5ON0\yD
+L*P$v:Kd3_2X0
Ea4X]yzM08O(ERM8O#j0int main()
!N JQ'lf%K4d"ju0{51Testing软件测试网c7C7_BR2n
51Testing软件测试网}9eg1`h0S#X6o otherFun(callback);
F#tv%a[3p0 otherFun2(callback2,4);51Testing软件测试网.q)J#hgd-G
RR^v(K`J+v-h0}51Testing软件测试网 o5V~W!sp
51Testing软件测试网 Q)Pb8rym'f1D7p^
[6m[B0gn6n&I0
收藏
举报
TAG:
callback
回调函数