一个调用函数指针的问题,哪里出错了?
#include "stdio.h"main()
{int a,b,c,(*p)();
int max(int x,int y);
scanf("%d%d",&a,&b);
p=max;
c=(*p)(a,b);
printf("a=%d,b=%d,c=%d",a,b,c);
}
int max(int x,int y)
{int z;
if(x>y)z=x;
else z=y;
return(z);
}
教材就是这样教的啊,为什么不对?
编译出现错误:ompiling...
h.cpp
E:\研究生\软件\C工作空间\50\h.cpp(6) : 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
E:\研究生\软件\C工作空间\50\h.cpp(7) : error C2197: 'int (__cdecl *)(void)' : too many actual parameters
E:\研究生\软件\C工作空间\50\h.cpp(9) : warning C4508: 'main' : function should return a value; 'void' return type assumed
执行 cl.exe 时出错.
h.obj - 1 error(s), 0 warning(s)