Heim >Backend-Entwicklung >C++ >Warum erhalte ich bei der Kompilierung in C den Fehler „Mehrere Definitionen für ‚wat''?
Mehrfache Definition von Variablen in C
Das Auftreten eines Fehlers bei der Kompilierung von „mehreren Definitionen für was“ kann verwirrend sein. Lassen Sie uns den bereitgestellten Quellcode analysieren und das Problem identifizieren.
In Ihrem Code haben Sie vier Dateien: FileA.cpp, FileA.h, FileB.cpp und FileB.h. Beim Kompilieren erkennt der Compiler mehrere Definitionen einer Variablen namens wat.
Bei der Überprüfung haben Sie die Variable wat sowohl in FileA.h als auch in FileB.h definiert:
// FileA.h void hello(); #endif /* FILEA_H_ */ // FileB.h int wat; void world(); #endif /* FILEB_H_ */
Wenn Sie Beim Kompilieren des Codes werden die Header-Dateien mehrfach in die Kompilierungseinheit eingebunden, was zu doppelten Definitionen der Variablen wat führt. Um dieses Problem zu lösen, müssen Sie die Deklaration von Wat von seiner Definition trennen.
Lösung:
extern int wat;
Dies informiert den Compiler darüber, was definiert wird woanders.
int wat = 0;
Jetzt erkennt der Compiler beim Kompilieren korrekt, was in FileB.h deklariert und definiert ist in FileB.cpp, Behebung des Mehrfachdefinitionsfehlers.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich bei der Kompilierung in C den Fehler „Mehrere Definitionen für ‚wat''?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!