一个c回调函数的例子

 
#include<stdio.h>
02// 方法指针的格式为:int (*ptr)(char *p) 即:返回值(指针名)(参数列表)
03  
04typedef int (*CallBackFun)(char *p); // 为回调函数命名,类型命名为 CallBackFun,参数为char *p
05  
06  
07  
08  
09// 方法 Afun,格式符合 CallBackFun 的格式,因此可以看作是一个 CallBackFun    
10int 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
23int 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// 执行回调函数,方式一:通过命名方式
36int 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// 执行回调函数,方式二:直接通过方法指针    
51int call2(char *p, int (*ptr)())
52  
53
54  
55    printf("==============\n", p);     
56  
57    (*ptr)(p); 
58  
59}
60  
61  
62  
63// 执行回调函数,方式一:通过命名方式
64int call3(char *p, CallBackFun pCallBack)
65  
66
67  
68    printf("--------------\n", p);    
69  
70    pCallBack(p); 
71  
72}
73  
74  
75  
76int 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}

 

摘自:http://my.oschina.net/kaixindewo/blog/16320

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值