Heim > Backend-Entwicklung > C++ > Wo werden statische Variablen in ausführbaren C- und C-Dateien gespeichert?

Wo werden statische Variablen in ausführbaren C- und C-Dateien gespeichert?

Mary-Kate Olsen
Freigeben: 2025-01-03 11:28:40
Original
192 Leute haben es durchsucht

Where Are Static Variables Stored in C and C   Executable Files?

Statische Variablenspeicherung in C und C

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!

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