Heim >Backend-Entwicklung >C++ >Warum erhalte ich bei der Kompilierung in C den Fehler „Mehrere Definitionen für ‚wat''?

Warum erhalte ich bei der Kompilierung in C den Fehler „Mehrere Definitionen für ‚wat''?

Susan Sarandon
Susan SarandonOriginal
2024-12-08 07:04:16840Durchsuche

Why Am I Getting a

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:

  1. Deklarieren Sie Wat als externe Variable in FileB.h :
extern int wat;

Dies informiert den Compiler darüber, was definiert wird woanders.

  1. Was in FileB.cpp definieren:
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!

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