如何摆脱未找到标识符的错误?
例如:
int step1(int a, int b)
{
if (b == a)
{
cout << "They are the same." << endl;
return 0;
}
else
{
step2(a, b);
}
}
int step2(int a, int b)
{
if (a > b)
{
a = a - b;
step1(a, b);
}
if (b > a)
{
b = b - a;
step1(a, b);
}
}
int main()
{
int a = 1;
int b = 2;
step1(a, b);
}
如果代码的设置与上面的示例类似,则会出现&#39; step1&#39;运行时错误:找不到标识符,但如果我将step2函数放在step1函数之上,那么运行时错误&#39; step2&#39;:未找到标识符。我如何改变这一点,以便将来不会出现任何错误?
答案 0 :(得分:1)
您必须在int step2(int a,int b);
int step1(int a, int b)
在编译期间,当编译器编译step1
时,它不知道标识符step2
。所以你必须事先声明这个功能。
答案 1 :(得分:1)
您需要在文件顶部提供f2
的转发声明
举个例子:
int step2(int a, int b);
int step1(int a, int b)
{
// your code that uses step2 here
}
int step2(int a, int b)
{
// your code that uses step1 here
}
int main()
{
int a = 1;
int b = 2;
step1(a, b);
}