Heim > Backend-Entwicklung > C++ > Wie kann ich mehrere Definitionsfehler beheben, die durch globale Variablen in C verursacht werden?

Wie kann ich mehrere Definitionsfehler beheben, die durch globale Variablen in C verursacht werden?

Mary-Kate Olsen
Freigeben: 2024-12-04 07:09:11
Original
1010 Leute haben es durchsucht

How Can I Resolve Multiple Definition Errors Caused by Global Variables in C  ?

Fehler bei mehreren Definitionen beheben: Variablenbereich in C verstehen

In C können mehrere Definitionen einer Variablen zu Kompilierungsfehlern führen. Um dieses Problem zu verstehen, schauen wir uns das gegebene Szenario genauer an.

Betrachten Sie die bereitgestellten vier Dateien: FileA.cpp, FileA.h, FileB.cpp und FileB.h. In FileB.h wird eine globale Variable namens wat als int wat; deklariert. Während der Kompilierung erkennt der Compiler jedoch mehrere Definitionen von wat.

Dieser Fehler tritt auf, weil die Variable wat sowohl in FileB.h als auch in FileB.cpp definiert ist. Standardmäßig platziert C globale Variablen im globalen Bereich, der von allen Kompilierungseinheiten gemeinsam genutzt wird. Wenn mehrere Definitionen derselben Variablen vorhanden sind, kann der Compiler nicht bestimmen, welche Definition verwendet werden soll.

Um dieses Problem zu lösen, kann man das Konzept der Vorwärtsdeklaration nutzen. Mit dieser Technik können wir die Existenz einer Variablen deklarieren, ohne ihre Definition anzugeben. Ändern Sie in diesem Fall FileB.h wie folgt:

extern int wat;
Nach dem Login kopieren

Definieren Sie in FileB.cpp die Variable wie gewohnt:

int wat = 0;
Nach dem Login kopieren

Durch die Verwendung des Schlüsselworts extern weisen wir die an Compiler, dass es an anderer Stelle im Programm vorhanden ist und dass seine Definition später bereitgestellt wird. Dadurch wird sichergestellt, dass alles nur einmal deklariert und definiert wird.

Zusammenfassend lässt sich sagen, dass mehrere Variablendefinitionen auftreten, wenn eine Variable mehr als einmal ohne geeignete Scoping-Mechanismen definiert wird. Vorwärtsdeklarationen helfen, dieses Problem zu lösen, indem sie die Existenz einer Variablen anzeigen und ihre Definition auf eine bestimmte Quelldatei verschieben.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Definitionsfehler beheben, die durch globale Variablen in C verursacht werden?. 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