error C2059: syntax error : 'type'是怎么回事啊?

#include<stdio.h>#include<stdlib.h>voidmain(){intmax(intx,inty,intz);inta,b,c,d;scanf... #include<stdio.h>
#include<stdlib.h>
void main()
{
int max(int x,int y,int z);
int a,b,c,d;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf("max=%d",d);
system("pause");
}
int max(int x,int y,int z)
{
int r;
if(x>y)r=x;
else r=y;
if(r>z);
else r=z;
return(r);
}

C:\C++\max abc\max abc.c(5) : warning C4002: too many actual parameters for macro 'max'
C:\C++\max abc\max abc.c(5) : error C2059: syntax error : 'type'
C:\C++\max abc\max abc.c(8) : warning C4002: too many actual parameters for macro 'max'
C:\C++\max abc\max abc.c(12) : warning C4002: too many actual parameters for macro 'max'
C:\C++\max abc\max abc.c(12) : error C2059: syntax error : 'type'
Error executing cl.exe.

max abc.exe - 2 error(s), 3 warning(s)
请问是哪里错啦?
展开
 我来答
吾好梦中殺猪
推荐于2018-02-28 · TA获得超过335个赞
知道小有建树答主
回答量:267
采纳率:0%
帮助的人:324万
展开全部
我觉得他们没有说清楚,我有必要补充下:

你这个错误的根本原因,是 stdlib.h 文件里已经定义了max。
见该文件第 885行

/* Non-ANSI names for compatibility */
#ifndef __cplusplus
#define max(a,b) (((a) > (b)) ? (a) : (b))
#define min(a,b) (((a) < (b)) ? (a) : (b))
#endif

可见李蚂,max已经定义成带两个参数的宏了,你再去定义一个,程序会用该宏的定义去替哪春埋换,
但发现你的参数是3个,和宏定义的2个矛盾,就提示出错了。

建议把你的max函数改成别的名字森岩, 比如myMax之类的,免得和系统定义冲突。
百度网友31424
2018-04-11 · TA获得超过1.7万个赞
知道小有建树答主
回答量:273
采纳率:100%
帮助的人:8.5万
展开全部

Non-ANSI names for compatibility */

#ifndef __cplusplus

#define max(a,b) (((a) > (b)) ? (a) : (b))

#define min(a,b) (((a) < (b)) ? (a) : (b))

#endif

可见,max已经定义成带两个参数的宏了,你再去定义一个,程序会用该宏的定义去替凯宴换,

但发现你的参数是3个,和宏定义的2个矛盾,就提示出错了。

建议把你的max函数圆族改成别的盯腔银名字, 比如myMax之类的,免得和系统定义冲突。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金色潜鸟
2013-05-21 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5660万
展开全部
程序空搜早斗雀第一行加写:
#define NOMINMAX
用来取消Macros min(a,b) and max(a,b) ...的定义。漏大
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
班加西2011
2013-05-21 · 超过32用户采纳过TA的回答
知道答主
回答量:97
采纳率:0%
帮助的人:77.5万
展开全部
int max(int x,int y,int z); /帆禅/函数中不能声明和定义函数
我中歼错了,可态培尘以局部声明,楼上正解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式