Heim >Backend-Entwicklung >C++ >Wie werden statische und globale Variablen in C initialisiert?
Initialisierung statischer und globaler Variablen in C
In C werden statische und globale Objekte mit Namespace-Gültigkeit anders initialisiert als in C. Hier ist eine ausführliche Erklärung:
Initialisierungsphasen:
C initialisiert diese Variablen in drei Phasen:
Initialisierung gegebener Variablen:
In Ihrem Codeausschnitt:
Speicher und Verwaltung von Initialisierungswerten:
Während der Kompilierung werden Initialisierungswerte im „Daten“-Segment der ausführbaren Datei gespeichert, sofern sie nicht konstant sind. In diesem Fall werden sie im Segment „Text“ platziert.
Das System lädt das Segment „Daten“ in den Speicher und initialisiert statische Variablen mit statischen Initialisierern. Variablen ohne Initialisierer oder dynamische Initialisierer werden im „bss“-Segment platziert, das vom System vor der Codeausführung auf Null gesetzt wird.
Zusätzlicher Hinweis für C 11
C 11 führt constexpr ein und ermöglicht es einigen benutzerdefinierten Funktionen, statische Initialisierungen zu sein. Es werden auch lokale Thread-Variablen eingeführt, was die Initialisierungsverfahren weiter verkompliziert.
Das obige ist der detaillierte Inhalt vonWie werden statische und globale Variablen in C initialisiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!