Heim > Backend-Entwicklung > C++ > Warum erhalte ich in meinem Code die Fehlermeldung „Nicht deklarierte Kennung'?

Warum erhalte ich in meinem Code die Fehlermeldung „Nicht deklarierte Kennung'?

Susan Sarandon
Freigeben: 2024-12-19 01:56:10
Original
139 Leute haben es durchsucht

Why Am I Getting

Fehler bei nicht deklarierten Bezeichnern: Ursachen und Lösungen

Fehler bei nicht deklarierten Bezeichnern treten auf, wenn der Compiler auf einen Verweis auf eine Variable, eine Funktion oder einen Typ stößt wurde im aktuellen Bereich nicht deklariert oder definiert. Diese Fehler werden typischerweise durch einen der folgenden Gründe verursacht:

Fehlende Einbeziehung der Header-Datei

Die häufigste Ursache für nicht deklarierte Identifikatorfehler ist das Fehlen der erforderlichen Header-Datei das die Deklaration des Bezeichners enthält. In C würde beispielsweise das folgende Beispiel einen „nicht deklarierten Bezeichner“-Fehler für die „cout“-Funktion generieren:

int main() {
    cout << "Hello world!" << endl;
    return 0;
}
Nach dem Login kopieren

Um dieses Problem zu beheben, fügen Sie den Header-Datei:

#include 
int main() {
    cout << "Hello world!" << endl;
    return 0;
}
Nach dem Login kopieren

Falsch geschriebene Variablen oder Funktionen

Eine weitere häufige Quelle dieser Fehler sind falsch geschriebene Bezeichner. Beispielsweise würde der folgende Code aufgrund der falsch geschriebenen Variable „AComplicatedName“ in der zweiten Zeile einen Fehler erzeugen:

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

Incorrect Scope

Identifiers must deklariert werden im gleichen Bereich, in dem auf sie verwiesen wird. In diesem Beispiel sollte beispielsweise „std::string“ verwendet werden, um sowohl „s1“ als auch „s2“ zu deklarieren:

#include <string>

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

Use Before Declaration

In einigen Programmiersprachen, wie z. B. C, müssen Bezeichner vor ihrer Verwendung deklariert werden. Wenn auf eine Funktion oder Variable vor ihrer Deklaration verwiesen wird, generiert der Compiler einen Fehler „nicht deklarierter Bezeichner“. Zum Beispiel:

void f() { g(); }
void g() { }
Nach dem Login kopieren

Um diesen Fehler zu beheben, verschieben Sie entweder die Definition von „g“ vor „f“:

void g() { }
void f() { g(); }
Nach dem Login kopieren

Oder fügen Sie eine Deklaration von „g“ vor „f“ hinzu ':

void g(); // declaration
void f() { g(); }
void g() { } // definition
Nach dem Login kopieren

stdafx.h nicht oben (Visual Studiospezifisch)

In Visual Studio muss die Zeile „#include „stdafx.h““ die erste Codezeile sein, um andere Headerdateien korrekt zu verarbeiten. Wenn diese Zeile weggelassen oder nicht oben platziert wird, ignoriert der Compiler möglicherweise nachfolgende Deklarationen, was zu Fehlern aufgrund nicht deklarierter Bezeichner führt. Zum Beispiel:

#include <iostream>
#include "stdafx.h"
Nach dem Login kopieren

In diesem Beispiel ist das „#include “ würde ignoriert werden und der Code würde nicht kompiliert werden können. Um dieses Problem zu beheben, verschieben Sie „#include „stdafx.h““ an den Anfang der Datei:

#include "stdafx.h"
#include <iostream>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in meinem Code die Fehlermeldung „Nicht deklarierte Kennung'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage