c++中的一个函数参数bug

请问C++是不是有bug

#include <iostream>
using namespace std;
int main()
{
    int max(int a, int b);
    {
        if (a > b) {
            return a;
        }
        return b;
    }
    cout << max(50, 70) << endl;
    return 0;
}

编译时为什么会出现没有标识符a和b的报错呢
这是怎么个情况,困在这里好久了,这是不是c++语言有缺陷呢

这是C++的语法规则?

#include <iostream>
using namespace std;
int max(int a, int b);    // 函数声明
int main()
{    
    cout << max(50, 70) << endl; // 函数调用
    return 0;
}
int max(int a, int b)   // 函数实现
{
    if (a > b) {
        return a;
    }
    return b;
}

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7666841
  • 这篇博客也不错, 你可以看下黑马程序员c++教程,利用类模板实现数组封装案例中,一种断点bug的产生原因及解决方案
  • 以下回答由chatgpt基于相关博客总结生成:

    由于没有具体代码或错误提示,我无法确定你遇到的函数参数标识符错误是什么。一般来说,函数参数标识符错误可能出现在以下几种情况中:

    1. 函数声明和定义不一致,即函数声明时指定的参数和函数定义时指定的参数不一致或数量不匹配。

    解决方案:需要检查函数声明和函数定义的参数是否一致,如果不一致则需要修改函数声明或函数定义中的参数。

    1. 函数参数类型或名称拼写错误。

    解决方案:检查函数参数的类型和名称是否正确,如果不正确则需要修改参数类型或者拼写错误。

    1. 函数参数无法识别。

    解决方案:检查函数参数是否在函数范围内定义,如果未定义则需要定义参数。

    除了以上几种情况,函数参数标识符错误还可能出现在其他情况中,需要结合具体代码错误提示进行排查。

    总之,针对函数参数标识符错误,需要仔细检查相关的函数声明、定义以及函数调用是否正确,一般也可以参考编译器报错信息来定位问题所在。如果遇到问题,也可以在各种程序员社区中查找相关解决方案,由于每个错误具体情况不同,因此可能需要结合具体情况制定解决方案。