您的位置:首页 > 其它

一个c回调函数的例子

2012-09-24 16:46 169 查看
01
#include<stdio.h>
02
//
方法指针的格式为:int (*ptr)(char *p) 即:返回值(指针名)(参数列表)
03
04
typedef
int
(*CallBackFun)(
char
*p);
//
为回调函数命名,类型命名为 CallBackFun,参数为char *p
05
06
07
08
09
//
方法 Afun,格式符合 CallBackFun 的格式,因此可以看作是一个 CallBackFun
10
int
Afun(
char
*p)
11
12
{
13
14
printf
(
"Afun
回调打印出字符%s!\n"
,
p);
15
16
return
0;
17
18
}
19
20
21
22
//
方法 Bfun,格式符合 CallBackFun 的格式,因此可以看作是一个 CallBackFun
23
int
Cfun(
char
*p)
24
25
{
26
27
printf
(
"Cfun
回调打印:%s, Nice to meet you!\n"
,
p);
28
29
return
0;
30
31
}
32
33
34
35
//
执行回调函数,方式一:通过命名方式
36
int
call(CallBackFun
pCallBack,
char
*p)
37
38
{
39
40
printf
(
"call
直接打印出字符%s!\n"
,
p);
41
42
pCallBack(p);
43
44
return
0;
45
46
}
47
48
//
int call2(char *p,int (*ptr)(char *p))
49
50
//
执行回调函数,方式二:直接通过方法指针
51
int
call2(
char
*p,
int
(*ptr)())
52
53
{
54
55
printf
(
"==============\n"
,
p);
56
57
(*ptr)(p);
58
59
}
60
61
62
63
//
执行回调函数,方式一:通过命名方式
64
int
call3(
char
*p,
CallBackFun pCallBack)
65
66
{
67
68
printf
(
"--------------\n"
,
p);
69
70
pCallBack(p);
71
72
}
73
74
75
76
int
main()
77
78
{
79
80
char
*p
=
"hello"
;
81
call(Afun,
p);
82
83
call(Cfun,
p);
84
85
call2(p,
Afun);
86
87
call2(p,
Cfun);
88
89
call3(p,
Afun);
90
91
call3(p,
Cfun);
92
93
//
int i = getchar();
94
95
//
printf("Input: %c \n", i);
96
97
return
0;
98
99
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: