为什么这个代码在dev里面好好的,在vs就会报错啊?
本帖最后由 chenhuhu 于 2022-9-5 19:36 编辑这个代码在#include <stdio.h>
#include <stdlib.h>
int main()
{
int max(int x, int y);
int a, b, c;
while (1)
{
printf("请输入两个整数,中间用空格隔开:");
scanf_s("%d %d", &a, &b);
c = max(a, b);
printf("max=%d\n", c);
system("pause");
}
return 0;
}
int max(int x, int y)
{
int z;
if (x > y)z = x;
else z = y;
return(z);
}dev里面可以运行,但是vs就会报错,哪位大佬知道为什么报错以及怎么修改嘛? #include <stdio.h>
#include <stdlib.h>
int myMax(int x, int y);// 函数定义要在main函数外
int main()
{
int a, b, c;
while (1)
{
printf("请输入两个整数,中间用空格隔开:");
scanf_s("%d %d", &a, &b);
c = myMax(a, b);
printf("max=%d\n", c);
system("pause");
}
return 0;
}
int myMax(int x, int y)// max就是头文件stdlib.h的一个函数,所以不能用max
{
int z;
if (x > y)z = x;
else z = y;
return(z);
} dev雀食可以运行,但这不说明你的代码没有问题
注意第六行
你想定义原型
但是原型得在外面定义
所以无效 if (x > y)z = x;
else z = y;
这个用 z = x > y ? x : y ; 效率会更高 临时号 发表于 2022-9-5 23:26
据我所知(以及我在我使用的实现上进行的测试结果显示),名为 max 的函数并不一定出现在头文件 <stdlib.h> 中。尽管注意避免这些易于出现冲突的符号是得当的,称其“就是头文件 stdlib.h 的一个函数”似乎仍有所不妥 dolly_yos2 发表于 2022-9-6 10:33
据我所知(以及我在我使用的实现上进行的测试结果显示),名为 max 的函数并不一定出现在头文件中。尽 ...
你说的很对,我昨天疏忽了
这个结果是我在VS中看到的,且将#include <stdlib.h>注释后可以使用max来作为函数名,所以我在写的时候就直接写了它是头文件stdlib.h的一个函数,确实不太严谨
页:
[1]