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;
Definieren Sie in FileB.cpp die Variable wie gewohnt:
int wat = 0;
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!