鱼C论坛

 找回密码
 立即注册
查看: 1964|回复: 5

[已解决]为什么这个代码在dev里面好好的,在vs就会报错啊?

[复制链接]
发表于 2022-9-5 19:33:30 | 显示全部楼层 |阅读模式
3鱼币
本帖最后由 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就会报错,哪位大佬知道为什么报错以及怎么修改嘛?
最佳答案
2022-9-5 19:33:31
#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);
}
vs.jpg
报错.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-5 19:33:31 | 显示全部楼层    本楼为最佳答案   
#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);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-5 21:22:22 | 显示全部楼层
dev雀食可以运行,但这不说明你的代码没有问题
注意第六行
你想定义原型
但是原型得在外面定义
所以无效

评分

参与人数 1荣誉 +2 鱼币 +3 贡献 +1 收起 理由
chenhuhu + 2 + 3 + 1 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-6 09:52:44 | 显示全部楼层
if (x > y)z = x;
        else z = y;
这个用 z = x > y ? x : y ; 效率会更高
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-6 10:33:31 | 显示全部楼层

据我所知(以及我在我使用的实现上进行的测试结果显示),名为 max 的函数并不一定出现在头文件 <stdlib.h> 中。尽管注意避免这些易于出现冲突的符号是得当的,称其“就是头文件 stdlib.h 的一个函数”似乎仍有所不妥

评分

参与人数 1鱼币 +1 收起 理由
陈尚涵 + 1 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-6 12:55:15 | 显示全部楼层
dolly_yos2 发表于 2022-9-6 10:33
据我所知(以及我在我使用的实现上进行的测试结果显示),名为 max 的函数并不一定出现在头文件  中。尽 ...

你说的很对,我昨天疏忽了
这个结果是我在VS中看到的,且将#include <stdlib.h>注释后可以使用max来作为函数名,所以我在写的时候就直接写了它是头文件stdlib.h的一个函数,确实不太严谨
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-16 22:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表