Chinaunix首页 | 论坛 | 博客
  • 博客访问: 495769
  • 博文数量: 102
  • 博客积分: 4001
  • 博客等级: 上校
  • 技术积分: 756
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-21 16:01
文章分类

全部博文(102)

文章存档

2011年(1)

2010年(1)

2009年(56)

2008年(44)

我的朋友

分类: C/C++

2009-02-26 21:36:29

CODE1

#include
#include


int a1(int t)
{
return t+1;
}

int a2(int t)
{
return t+2;
}

void main()
{
int i;
int para=23;

for(i=1;i<=2;i++)
{
switch(i)
{
case 1:
       printf("a1=%d\n", a1(para));
       break;
case 2:
       printf("a2=%d\n", a2(para));
       break;
default:
       printf("bad\n");
}
}
}

CODE2

#include
#include

int (*a[4])();

int a1(int t)
{
return t+1;
}

int a2(int t)
{
return t+2;
}

int main(int argc, char *argv[])
{
int i;
int para=23;
int re;

a[1] = a1;
a[2] = a2;

for(i=1;i<=2;i++)
{
re = (*a[i])(para);
printf("a%d = %d\n", i, re);
}

return 0;
}

代码是我从一个帖子中看到稍微改动了下,显然第二段代码使用了函数指针,如何使用很清楚,但是往往代码中使用函数指针的部分很容易让代码难读,确定自己没有问题的情况下再考虑用函数指针吧
阅读(1271) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~