主题:一个指向函数的指针的编译问题
我在VS2010里建立了CPP文件如下,是一个简单的通过指向函数的指针调用函数的程序:
#include<stdio.h>
int max(int a,int b){
int t;
if(a>b)t=a;
else t=b;
return(t);
}
void main(){
int max(int a ,int b);
int(*pmax)();
int x,y,z;
pmax=max;
scanf("%d%d",&x,&y);
z=(*pmax)();
printf("%d",z);
}
想请教大侠:为什么我编译时会出错?这段程序应该是没有问题的(完全照书打),但错误代码却是“error C2440: “=”: 无法从“int (__cdecl *)(int,int)”转换为“int (__cdecl *)(void)”
1> 该转换要求 reinterpret_cast、C 样式转换或函数类型转换 ”这是怎么回事,难道我把函数的地址传给pmax有问题?小弟实在搞不明白,还请高手赐教,谢谢!
#include<stdio.h>
int max(int a,int b){
int t;
if(a>b)t=a;
else t=b;
return(t);
}
void main(){
int max(int a ,int b);
int(*pmax)();
int x,y,z;
pmax=max;
scanf("%d%d",&x,&y);
z=(*pmax)();
printf("%d",z);
}
想请教大侠:为什么我编译时会出错?这段程序应该是没有问题的(完全照书打),但错误代码却是“error C2440: “=”: 无法从“int (__cdecl *)(int,int)”转换为“int (__cdecl *)(void)”
1> 该转换要求 reinterpret_cast、C 样式转换或函数类型转换 ”这是怎么回事,难道我把函数的地址传给pmax有问题?小弟实在搞不明白,还请高手赐教,谢谢!