Chinaunix首页 | 论坛 | 博客
  • 博客访问: 981434
  • 博文数量: 186
  • 博客积分: 10020
  • 博客等级: 上将
  • 技术积分: 1676
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-14 17:08
文章存档

2011年(5)

2009年(11)

2008年(2)

2007年(111)

2006年(57)

我的朋友

分类: LINUX

2008-03-26 02:14:22

回调函数的设计

函数指针的两个常见用法是,一是做为结构成员,做面向对向的封装,另一个就是回调函数的设计。
所谓回调函数,也就是把函数传递给另一个函数,另一个函数在某一种调用这个函数,可以想见,另一个函数对应的形参就是一个函数指针:
[code]int add(int a,int b)
{
return a+b;
}

int do_it(int (*ADD)(int,int),int a,int b)
{
printf("%d\n",ADD(a,b));

return 0;
}

int main(int argc,char **argv)
{
int a=3,b=4;

do_it(add,a,b);
}[/code]
这个例子,ADD是一个函数指针,它做形参使用,为时候为了使用typedef,简单代码:

[code]typedef int(*ADD)(int,int);

int add(int a,int b)
{
return a+b;
}

int do_it(ADD func,int a,int b)
{
printf("%d\n",func(a,b));

return 0;
}

int main(int argc,char **argv)
{
int a=3,b=4;

do_it(add,a,b);
} [/code]
阅读(1975) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~