Was ist ein 'nicht deklarierter Bezeichner' Fehler und wie kann ich ihn beheben?

Was sind nicht deklarierte Bezeichnerfehler? Was sind die häufigsten Ursachen und wie kann ich sie beheben?

Beispielhafte Fehlertexte:

  • Für den Visual Studio Compiler: Fehler C2065: 'cout' : nicht deklarierter Bezeichner
  • Für den GCC-Compiler: 'cout' undeclared (erste Verwendung in dieser Funktion)

Meistens wird vergessen, die Header-Datei einzubinden, die die Funktionsdeklaration enthält, z.B. gibt dieses Programm einen 'undeclared identifier' Fehler aus:

Fehlender Header


int main() {
    std::cout 
Kommentare (4)

In C und C++ müssen alle Namen deklariert werden, bevor sie verwendet werden. Wenn Sie versuchen, den Namen einer Variablen oder einer Funktion zu verwenden, die nicht deklariert wurde, erhalten Sie eine Fehlermeldung "Nicht deklarierter Bezeichner".

Funktionen sind jedoch ein Sonderfall in C (und nur in C), da man sie nicht erst deklarieren muss. Der C-Compiler nimmt an, dass die Funktion mit der Anzahl und dem Typ der Argumente wie im Aufruf existiert. Wenn die tatsächliche Funktionsdefinition nicht damit übereinstimmt, erhalten Sie einen weiteren Fehler. Diesen Sonderfall für Funktionen gibt es in C++ nicht.

Sie beheben diese Art von Fehlern, indem Sie sicherstellen, dass Funktionen und Variablen deklariert werden, bevor sie verwendet werden. Im Fall von printf müssen Sie die Header-Datei (oder in C++) einbinden.

Für Standardfunktionen empfehle ich Ihnen z.B. diese Referenzseite, und suchen Sie nach den Funktionen, die Sie verwenden wollen. Die Dokumentation für jede Funktion sagt Ihnen, welche Header-Datei Sie benötigen.

Kommentare (0)

Es ist so, als würde man die Funktion verwenden, ohne sie zu deklarieren. Header-Datei enthält die Funktion printf(). Fügen Sie die Header-Datei in Ihr Programm ein, das ist die Lösung für dieses Problem. Bei einigen benutzerdefinierten Funktionen kann es auch zu Fehlern kommen, wenn sie vor der Verwendung nicht deklariert werden. Wenn sie global verwendet wird, gibt es keine Probleme.

Kommentare (0)