Heim >Backend-Entwicklung >C++ >Warum erhalte ich in meinem C-Code einen Fehler bei der Verknüpfung statischer Variablen?

Warum erhalte ich in meinem C-Code einen Fehler bei der Verknüpfung statischer Variablen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-16 01:24:10308Durchsuche

Why Am I Getting a Static Variable Linking Error in My C   Code?

Fehler bei der Verknüpfung statischer Variablen in C

Beim Kompilieren von C-Code, insbesondere auf einem Mac, kann es zu einem „Fehler bei der Verknüpfung statischer Variablen“ kommen. Ähnlich wie im bereitgestellten Codeausschnitt. Dieser Fehler tritt normalerweise auf, wenn versucht wird, auf eine statische Variable zu verweisen, die extern (in der *.cpp-Datei) nicht ordnungsgemäß definiert wurde.

Ursache des Problems

Im bereitgestellten Code wird die statische Variable „theString“ in der Header-Datei „Log.h“ deklariert, aber nie definiert. Statische Variablen erfordern eine externe Definition in der entsprechenden *.cpp-Datei, um Speicher zu reservieren und zu initialisieren.

Lösung

Um den Verknüpfungsfehler zu beheben, können Sie die Definition hinzufügen von „theString“ in die Datei „Log.cpp“, wie unten gezeigt:

// Log.cpp

string Log::theString; // Define the static string here

Zusätzlich Empfehlungen

Zusätzlich zur externen Definition der statischen Variablen wird auch empfohlen, die Verwendung von „using namespace std;“ zu vermeiden. in der Header-Datei. Diese Vorgehensweise kann zu einer Verschmutzung des Namensraums führen, wodurch es in Zukunft schwieriger wird, Ihren Code zu debuggen und zu warten.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in meinem C-Code einen Fehler bei der Verknüpfung statischer Variablen?. 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