#include<stdio.h>
void main()
{
int max(int x,int y);
int (*p)();
int a,b,c;
p=max;
scanf("%d,%d",&a,&b);
c=(*p)(a,b);
printf("max=%d",c);
}max(int x,int y)
{
int z;
if(x>y) z=x;
else z=y;
return(z);
}以上是程序,错误是:C:\Program Files\Microsoft Visual Studio\MyProjects\h\h.cpp(7) : error C2440: '=' : cannot convert from 'int (__cdecl *)(int,int)' to 'int (__cdecl *)(void)'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
C:\Program Files\Microsoft Visual Studio\MyProjects\h\h.cpp(9) : error C2197: 'int (__cdecl *)(void)' : too many actual parameters
void main()
{
int max(int x,int y);
int (*p)();
int a,b,c;
p=max;
scanf("%d,%d",&a,&b);
c=(*p)(a,b);
printf("max=%d",c);
}max(int x,int y)
{
int z;
if(x>y) z=x;
else z=y;
return(z);
}以上是程序,错误是:C:\Program Files\Microsoft Visual Studio\MyProjects\h\h.cpp(7) : error C2440: '=' : cannot convert from 'int (__cdecl *)(int,int)' to 'int (__cdecl *)(void)'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
C:\Program Files\Microsoft Visual Studio\MyProjects\h\h.cpp(9) : error C2197: 'int (__cdecl *)(void)' : too many actual parameters
用
int (*p)=max;
改成这个试试。
定义不对,后面一个括号是参数类型,要
int (*p)(int,int);
2 int (*p)();改为 int (*p)(int,int);