c语言函数报错:error C2059: 语法错误:“类型"为什么?

我是一个c语言初学者,刚刚学了一点函数,于是自己动手写了以下代码:#include <stdio.h>#include <stdlib.h>int max(int a,int b){ int c = 0; c = b; if (a>b) c = a; return c;}int main(){ int a = 0;int b = 0; scanf("%d %d",&a,&b); a = max(a,b); printf("较大的数是%d",a); system("pause"); return 0;}由于电脑比较老旧,是32位,xp,我用的软件是visual studio 2010 pro,报错信息就是:c(3): error C2059: 语法错误:“类型”但是我检查了一下第三行,也和教学视频中老师写的代码比对了一下,感觉并没有什么错误,请大神解答一下错误在哪.

是否max函数与库中的函数重定义了? 可试着将你程序中所有max改成mmax再编译一下

追问

哇真的是,我之前就想max这么大众的词语会不会用过,果然如此,谢谢你啦.

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-08-26
在vs中,stdlib.h中定义了max()宏,你的函数max与之重名了,导致函数名max被当做宏展开了,进而引发了语法错误。将你的函数改为其他名称,例如my_max即可。
第2个回答  2019-08-26
你用#define b定义了一个宏,但没有定义它的展开代码。当预处理器对你的源码进行预处理时,会依次遇到如下的宏调用:
1、b+1;经处理后变成了+1;没有语法错误;
2、printf("%d\n",b);经处理后变成了printf("%d\n",);有语法错误,这就是问题所在。
可将#define b定义成#define b 100(或其它整数),来避免这个错误。
第3个回答  2019-08-26
看看逗号是不是中文符号,整体上没有什么语法错误,那么就可能是符号没有用英文符号
相似回答