例10.24设一个函数process,在调用它的时候,每次实现不同的功能。输入a和B两个数,第一次调用process时找出a和b中大者,第二次找出其中小者,第三次求a与b之和。
程序如下:
main()
{int max(int,int); /* 函数声明 */
int min(int,int); /* 函数声明 */
int add(int,int); /* 函数声明 */
int a,b;
printf("enter a and b:");
scanf("%d,%d",&a,&b);
   printf("max=");
process(a,b,max);
printf("min=");
   process(a,b,min);
printf("sum=");
process(a,b,add);

max(int x,int y) /* 函数定义 */
{int Z;
if(x>y)Z=x;
else Z=y;
return(Z);
   }
min(int x,int y) /* 函数定义 */
{int Z;
 if(x<y)Z=x;
  else Z=y;
  return(Z);
 }
add(int x,int y) /* 函数定义 */
 {int Z;
Z=x+y;
return(Z);
   }
process(int x,int y,int (*fun)(int,int)) /* 函数定义。int (*fun)(int,int) 表示fun是指向函数的指针,该函数是一个整型函数,有两个整型形参*/
 {int reSult;
reSult=(*fun)(x,y);
printf("%D\n",reSult);

 运行情况如下:
enter a and B:2,6
max=6
min=2
sum=8