Heim  >  Artikel  >  Backend-Entwicklung  >  Beheben Sie den C++-Kompilierungsfehler: „Funktion“ wurde in diesem Bereich nicht deklariert

Beheben Sie den C++-Kompilierungsfehler: „Funktion“ wurde in diesem Bereich nicht deklariert

WBOY
WBOYOriginal
2023-08-27 08:51:151516Durchsuche

解决C++编译错误:'function' was not declared in this scope

Beheben von C++-Kompilierungsfehlern: „Funktion“ wurde in diesem Bereich nicht deklariert

Beim Programmieren in C++ stoßen wir häufig auf einige Kompilierungsfehler: „‚Funktion‘ wurde in diesem Bereich nicht deklariert“. Dieser Fehler bedeutet, dass das Programm versucht hat, eine nicht deklarierte Funktion zu verwenden. In diesem Artikel werde ich die Ursache dieses Fehlers erläutern und einige Lösungen anbieten.

Schauen wir uns zunächst ein einfaches Codebeispiel an:

#include <iostream>

int main() {
    sayHello(); // 调用一个未声明的函数
    return 0;
}

void sayHello() {
    std::cout << "Hello, World!" << std::endl;
}

Wenn wir versuchen, diesen Code zu kompilieren, meldet der Compiler einen Fehler und zeigt „‚sayHello‘ wurde in diesem Bereich nicht deklariert“ an. Dies liegt daran, dass wir in der Hauptfunktion eine nicht deklarierte Funktion sayHello aufgerufen haben.

Der Grund, warum dieser Fehler auftritt, ist, dass der Compiler den Code in der Reihenfolge von oben nach unten analysiert. Bevor wir die Funktion sayHello aufrufen, weiß der Compiler nicht, dass diese Funktion existiert, daher wird ein Fehler gemeldet.

Um diesen Fehler zu beheben, müssen wir die Funktion sayHello vor der Hauptfunktion deklarieren. Sie können einen Funktionsprototyp vor der Hauptfunktion hinzufügen:

#include <iostream>

void sayHello(); // 函数原型

int main() {
    sayHello(); // 调用函数
    return 0;
}

void sayHello() {
    std::cout << "Hello, World!" << std::endl;
}

Im obigen Code haben wir den Funktionsprototyp vor der Hauptfunktion hinzugefügt void sayHello();. Dieser Funktionsprototyp teilt dem Compiler mit, dass es vor der Hauptfunktion eine Funktion namens sayHello gibt. Ihr Rückgabetyp ist void und hat keine Parameter.

Da der Compiler nun die Existenz der Funktion sayHello kennt, können wir sie in der Hauptfunktion aufrufen. Kompilieren Sie den Code erneut. Diesmal sollte der Fehler „‚sayHello‘ wurde in diesem Bereich nicht deklariert“ nicht mehr angezeigt werden.

Neben dem Hinzufügen eines Funktionsprototyps besteht eine weitere Möglichkeit, diesen Fehler zu beheben, darin, die Definition der Funktion vor die Hauptfunktion zu verschieben. Auf diese Weise sieht der Compiler die Funktionsdefinition, bevor er die Hauptfunktion kompiliert.

#include <iostream>

void sayHello() {
    std::cout << "Hello, World!" << std::endl;
}

int main() {
    sayHello(); // 调用函数
    return 0;
}

Im obigen Code haben wir die Funktionsdefinition vor die Hauptfunktion verschoben, sodass der Compiler zuerst die Definition der Funktion sayHello sieht und keinen Fehler mehr meldet.

Um es zusammenzufassen: Wenn der Fehler „Funktion wurde in diesem Bereich nicht deklariert“ auftritt, müssen wir die Funktion deklarieren oder definieren, bevor wir sie aufrufen. Dieser Fehler kann behoben werden, indem vor dem Aufruf der Funktion ein Funktionsprototyp hinzugefügt oder die Funktionsdefinition verschoben wird. Auf diese Weise erkennt der Compiler die Existenz der Funktion und meldet keinen Fehler. Ich hoffe, dieser Artikel ist hilfreich bei der Behebung von C++-Kompilierungsfehlern.

Das obige ist der detaillierte Inhalt vonBeheben Sie den C++-Kompilierungsfehler: „Funktion“ wurde in diesem Bereich nicht deklariert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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