#include <stdio.h>
int getMin(int data1,int data2)
{
return data1<data2 ? data1:data2;
}
int getMax(int data1,int data2)
{
return data1>data2 ? data1:data2;
}
int getSum(int data1,int data2)
{
return data1+data2;
}
int dataHandler(int data1,int data2,int (*pfunc)(int data1,int data2))
{
int ret;
ret=(*pfunc)(data1,data2);
return ret;
}
int main()
{
int data1=10;
int data2=20;
int cmd;
int ret;
//定义指针函数
int (*pfunc)(int data1,int data2);
printf("请输入1(大),2(小),3(和)\n");
scanf("%d",&cmd);
//用户输入,判断,用pfunc,来承接每个不同的函数,最后在调用
switch(cmd)
{
case 1:
pfunc=getMax;
break;
case 2:
pfunc=getMin;
break;
case 3:
pfunc=getSum;
break;
default:
printf("输入有误,请重新输入");
break;
}
ret=dataHandler(data1,data2,pfunc);//通过调用函数指针,承接值,
printf("%d",ret);
return 0;
}