指向函数的指针变量问题
程序准备实现的是对于a和b两个变量,第一次调用process时找出a、b中的最大值:第二次找出最小值,第三次求a、b之和。#include<stdio.h>
typedef int (*Func)(int, int);
void process(int x,int y,Func f)
{
int result;
result=f(x,y);
printf("%d\n",result);
}
void main()
{
int max(int,int),min(int,int),sum(int,int);
int a,b;
printf("please input a and b");
scanf("%d%d\n",&a,&b);
printf("the number a and b :%d,%d",a,b);
printf("max is: %d");
process(a,b,max);
printf("min is: %d");
process(a,b,min);
printf("sum is: %d");
process(a,b,sum);
}
max(int x,int y)
{
int z;
z=x>y?x:y;
return z;
}
min(int x,int y)
{
int z;
z=x<y?x:y;
return z;
}
sum(int x,int y)
{
int z;
z=x+y;
return z;
}
在VC6.0上编译一直出错,说process中的参数过多。。。。求大牛指导。。。
这是编译时提示的错误:
--------------------Configuration: 函数指针 - Win32 Debug--------------------
Compiling...
函数指针.cpp
E:\新建文件夹\函数指针\函数指针.cpp(18) : error C2660: 'process' : function does not take 3 parameters
E:\新建文件夹\函数指针\函数指针.cpp(20) : error C2660: 'process' : function does not take 3 parameters
E:\新建文件夹\函数指针\函数指针.cpp(22) : error C2660: 'process' : function does not take 3 parameters
Error executing cl.exe.
函数指针.obj - 3 error(s), 0 warning(s)
[ 本帖最后由 zjk103 于 2011-9-23 17:26 编辑 ]