c语言函数报错:error C2059: 语法错误:“类型"为什么?
我是一个c语言初学者,刚刚学了一点函数,于是自己动手写了以下代码:#include<stdio.h>#include<stdlib.h>intmax(inta,intb)...
我是一个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: 语法错误:“类型”但是我检查了一下第三行,也和教学视频中老师写的代码比对了一下,感觉并没有什么错误,请大神解答一下错误在哪.
展开
4个回答
展开全部
在vs中,stdlib.h中定义了max()宏,你的函数max与之重名了,导致函数名max被当做宏展开了,进而引发了语法错误。将你的函数改为其他名称,例如my_max即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你用#define b定义了一个宏,但没有定义它的展开代码。当预处理器对你的源码进行预处理时,会依次遇到如下的宏调用:
1、b+1;经处理后变成了+1;没有语法错误;
2、printf("%d\n",b);经处理后变成了printf("%d\n",);有语法错误,这就是问题所在。
可将#define b定义成#define b 100(或其它整数),来避免这个错误。
1、b+1;经处理后变成了+1;没有语法错误;
2、printf("%d\n",b);经处理后变成了printf("%d\n",);有语法错误,这就是问题所在。
可将#define b定义成#define b 100(或其它整数),来避免这个错误。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看看逗号是不是中文符号,整体上没有什么语法错误,那么就可能是符号没有用英文符号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询