"Use of undeclared identifier" - 代码有什么问题?

"Use of undeclared identifier" - what is wrong with the code?

本文关键字:什么 问题 代码 Use of undeclared identifier      更新时间:2023-10-16

我刚刚从Java切换到C++,所以有人能解释一下这段代码的问题吗:

#include "x.hpp"
#include <iostream>
using namespace std;
int min(int a,int b,int c){
 return minimum(minimum(a,b),c);
}
int minimum(int a,int b){
  if(a<b) return a;
  return b;
}
int main()
{
  cout<<min(1,2,3)<<"n";
  return 0;
}

编译器表示minimum未声明。但为什么呢?

附言:我的IDE是Xcode

minimum需要在调用时声明。

您可以将minimum的定义移动到min:之上

int minimum(int a,int b){
  if(a<b) return a;
  return b;
}
int min(int a,int b,int c){
  return minimum(minimum(a,b),c);
}

或者您可以转发声明minimum:

int minimum(int a,int b);
int min(int a,int b,int c){
  return minimum(minimum(a,b),c);
}
int minimum(int a,int b){
  if(a<b) return a;
  return b;
}

在声明minimum之前,您正在使用它。

要在min中使用之前声明它,可以在min:之前添加它

int minimum(int a, int b);

这是一个声明

您也可以将minimum的整个定义移动到min之前。