gpt4 book ai didi

c++ - 什么是 'undeclared identifier' 错误,我该如何解决?

转载 作者:IT老高 更新时间:2023-10-28 13:58:59 39 4
gpt4 key购买 nike

什么是未声明的标识符错误?常见原因有哪些?如何解决?

错误文本示例:

  • 对于 Visual Studio 编译器:error C2065: 'cout' : undeclared identifier
  • 对于 GCC 编译器:'cout' undeclared(在此函数中首次使用)

最佳答案

它们最常见的原因是忘记包含包含函数声明的头文件,例如,此程序将给出“未声明的标识符”错误:

缺少标题

int main() {
std::cout << "Hello world!" << std::endl;
return 0;
}

要修复它,我们必须包含标题:

#include <iostream>
int main() {
std::cout << "Hello world!" << std::endl;
return 0;
}

如果您编写了标题并正确包含它,则标题可能包含错误include guard .

要了解更多信息,请参阅 http://msdn.microsoft.com/en-us/library/aa229215(v=vs.60).aspx .

变量拼写错误

当您拼错变量时,另一个常见的初学者错误来源:

int main() {
int aComplicatedName;
AComplicatedName = 1; /* mind the uppercase A */
return 0;
}

范围不正确

例如,此代码会出错,因为您需要使用 std::string :

#include <string>

int main() {
std::string s1 = "Hello"; // Correct.
string s2 = "world"; // WRONG - would give error.
}

在声明前使用

void f() { g(); }
void g() { }

g首次使用前未声明。要修复它,请移动 g 的定义之前 f :

void g() { }
void f() { g(); }

或添加 g 的声明之前 f :

void g(); // declaration
void f() { g(); }
void g() { } // definition

stdafx.h 不在顶部(VS 特定)

这是特定于 Visual Studio 的。在VS中,需要加上#include "stdafx.h"在任何代码之前。编译器忽略之前的代码,所以如果你有这个:

#include <iostream>
#include "stdafx.h"

#include <iostream>将被忽略。你需要把它移到下面:

#include "stdafx.h"
#include <iostream>

请随意编辑此答案。

关于c++ - 什么是 'undeclared identifier' 错误,我该如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22197030/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com