很短的代码 很简单的功能 出了点小问题
运行环境为VC++6.0 功能为:求两个数最大值代码如下
程序代码:
[color=#0000FF]#include"stdafx.h" int max(int *x,int *y) { if(*x>*y) return *x; else return *y; } int main(int argc, char* argv[]) { int max(int *,int *); int (*fun)(),a=0,b=0; scanf("%d%d ",&a,&b); fun=max; printf("%d\n",((*fun)(&a,&b))); return 0; }编译时提示:
D:\Microsoft Visual Studio\MyProjects\charter10\008.cpp(20) : 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
D:\Microsoft Visual Studio\MyProjects\charter10\008.cpp(21) : error C2197: 'int (__cdecl *)(void)' : too many actual parameters
Error executing cl.exe.
008.obj - 2 error(s), 0 warning(s)
[/color]
[ 本帖最后由 迪拜axq 于 2012-9-22 09:46 编辑 ]