Heim > Artikel > Backend-Entwicklung > Wann und wie werden statische Variablen auf Funktionsebene in C zugewiesen und initialisiert?
Zuweisung und Initialisierung von statischen Variablen auf Funktionsebene
Statische Variablen auf Funktionsebene in C sind ein Datentyp, der während der gesamten Lebensdauer bestehen bleibt des Programms. Im Gegensatz zu globalen Variablen werden sie nicht im globalen Bereich deklariert, sondern im Rahmen einer Funktion. Dies wirft Fragen darüber auf, wann diese Variablen zugewiesen und initialisiert werden.
Im Gegensatz zu global deklarierten Variablen, die zu Beginn des Programms zugewiesen und initialisiert werden, werden statische Variablen auf Funktionsebene beim ersten Aufruf zugewiesen und initialisiert auf die Funktion, in der sie definiert sind. Dies wird im bereitgestellten Beispielcode deutlich:
void doSomething() { static bool globalish = true; }
Die statische Variable globalish wird beim ersten Aufruf der Funktion doSomething initialisiert. Davor ist sein Wert undefiniert. Dieses Ergebnis wurde durch ein Testprogramm bestätigt, das Ereignisse im Zusammenhang mit der Erstellung und Zerstörung von Objekten ausgab, die in verschiedenen Bereichen instanziiert wurden.
Dieses Verhalten wird auf die Tatsache zurückgeführt, dass statische Variablen in einem statischen Speicherbereich gespeichert werden Wird von allen Aufrufen derselben Funktion gemeinsam genutzt. Somit bleibt der Anfangswert über alle Aufrufe hinweg bestehen, sofern er nicht explizit innerhalb der Funktion geändert wird.
Das obige ist der detaillierte Inhalt vonWann und wie werden statische Variablen auf Funktionsebene in C zugewiesen und initialisiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!