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
Freigeben: 2024-12-08 07:04:16
Original
836 Leute haben es durchsucht

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_ */
Nach dem Login kopieren

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;
Nach dem Login kopieren

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

  1. Was in FileB.cpp definieren:
int wat = 0;
Nach dem Login kopieren

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!

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