Heim >Backend-Entwicklung >C++ >Wo werden statische Variablen in ausführbaren C- und C-Dateien gespeichert?
Statische Variablen sind ein einzigartiger Variablentyp in C und C, die in bestimmten Segmenten ausführbarer Dateien gespeichert werden, um Namen zu vermeiden Kollisionen. Im bereitgestellten Codebeispiel funktionieren sie trotz der gleichen Namen „foo“ und „bar“ in unterschiedlichen Übersetzungseinheiten unabhängig voneinander mit ihren inkrementierten Werten. Diese Unabhängigkeit wirft die Frage auf: Wo werden diese statischen Variablen in der ausführbaren Datei gespeichert?
Um den Speicherort zu verstehen, ist es wichtig zu berücksichtigen, ob die statischen Variablen mit Null initialisiert sind. Wenn dies der Fall ist, werden sie normalerweise im Segment „.BSS“ (Block Started by Symbol) platziert. In diesem Segment werden nicht initialisierte Daten gespeichert, die standardmäßig auf Null gesetzt sind. Beispiel: „foo = 1;“ würde in „.DATA“ gespeichert werden.
In der Zwischenzeit werden nicht mit Null initialisierte statische Variablen im „.DATA“-Segment platziert. Dieses Segment enthält initialisierte Daten, z. B. „foo = 10;“. Die Aufteilung in diese Segmente gewährleistet keine Namenskollisionen und ermöglicht eine effiziente Speicherzuweisung.
Das obige ist der detaillierte Inhalt vonWo werden statische Variablen in ausführbaren C- und C-Dateien gespeichert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!