天下

记录修行的印记

一个c回调函数的例子

 

#include <stdio.h>

typedef 
int (*CallBackFun)(char *p); 

int Afun(char *p) {   
    printf(
"Afun 回调打印出字符%s!\n", p);
    
return 0;
}

int Cfun(char *p) {    
    printf(
"Cfun 回调打印:%s, Nice to meet you!\n", p);
    
return 0;
}

int call(CallBackFun pCallBack, char *p) { // 执行回调函数,方式一:通过命名方式
    
//printf("call 直接打印出字符%s!\n", p);
    pCallBack(p);
    
return 0;
}

int call2(char *p, int(*ptr)(char *p) ) { // 执行回调函数,方式二:直接通过方法指针
    
//printf("==============\n", p); 
    (*ptr)(p);
    
return 0;
}



int main() {    

    
char *= "hello";

    call(Afun, p);
    call(Cfun, p);

    call2(p, Afun);
    call2(p, Cfun);

    
return 0;
}

http://hi.baidu.com/helloweenpad/blog/item/d96d13fb4b2276809f514607.html/cmtid/61eba60ba34a7530b0351d68

posted on 2011-04-20 15:13 天下 阅读(1431) 评论(0)  编辑 收藏 引用 所属分类: C/C++

<2011年4月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

常用链接

留言簿(4)

随笔分类(377)

随笔档案(327)

链接

最新随笔

搜索

最新评论