需求:
设计一个函数process,调用它的时候,每次实现不同的功能,分别求两个数的和,两个数的差,还有两个数较大值。
分析:
可以在process函数中,使用函数指针作为参数,传递不同函数的入口地址,得出不同的结果。
函数指针的定义为:int (*p)(int,int)
使用为:(*p)(a,b);
源码例子:
int add(int a,int b)
{
return a+b;
}
int sub(int a,int b)
{
return a-b;
}
int max(int a,int b)
{
return a>b?a:b ;
}
void process(int a,int b,int (*f)(int ,int ))
{
int result;
result = (*f)(a,b);
printf("%d\n",result);
}
int main()
{
int a,b;
int (*p)(int,int);
scanf("%d %d",&a,&b);
process(a,b,max);
process(a,b,add);
process(a,b,sub);
}