未宣言の識別子エラー: 原因と解決策
未宣言の識別子エラーは、コンパイラが次のような変数、関数、または型への参照を検出したときに発生します。現在のスコープ内で宣言または定義されていません。これらのエラーは通常、次のいずれかの理由によって発生します。
ヘッダー ファイルのインクルードの欠落
未宣言の識別子エラーの最も一般的な原因は、必要なヘッダー ファイルの欠落です。これには識別子の宣言が含まれます。たとえば、C では、次の例では、「cout」関数に対して「宣言されていない識別子」エラーが生成されます。
int main() { cout << "Hello world!" << endl; return 0; }
この問題を解決するには、 変数または関数のスペルが間違っている これらのエラーのもう 1 つの一般的な原因は、識別子のスペルが間違っていることです。たとえば、次のコードでは、2 行目の変数 'AComplicatedName' のスペルが間違っているため、エラーが発生します。 スコープが正しくありません 識別子を宣言する必要がありますそれらが参照されるのと同じスコープ内で。たとえば、この例では、「std::string」を使用して「s1」と「s2」の両方を宣言する必要があります: Use Before Declaration C などの一部のプログラミング言語では、識別子を使用する前に宣言する必要があります。関数または変数が宣言前に参照されると、コンパイラは「宣言されていない識別子」エラーを生成します。例: このエラーを修正するには、'g' の定義を 'f' の前に移動します: または 'f' の前に 'g' の宣言を追加します。 ': stdafx.h が先頭にありません (ビジュアル) Studio 固有) Visual Studio では、他のヘッダー ファイルを正しく処理するには、「#include "stdafx.h"」行がコードの最初の行である必要があります。この行が省略されているか先頭に配置されていない場合、コンパイラは後続の宣言を無視し、「宣言されていない識別子」エラーが発生する可能性があります。例: この例では、「#include 以上がコードで「宣言されていない識別子」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。#include
int main() {
int aComplicatedName;
AComplicatedName = 1; /* mind the uppercase A */
return 0;
}
#include <string>
int main() {
std::string s1 = "Hello"; // Correct.
string s2 = "world"; // WRONG - would give error.
}
void f() { g(); }
void g() { }
void g() { }
void f() { g(); }
void g(); // declaration
void f() { g(); }
void g() { } // definition
#include <iostream>
#include "stdafx.h"
#include "stdafx.h"
#include <iostream>