Statische Speicherklasse
Von cppreference.com
Ein Objekt, dessen Bezeichner ohne den Speicherklassenspezifizierer _Thread_local deklariert ist und entweder externe oder interne Bindung oder den Speicherklassenspezifizierer static hat, hat statische Speicherklasse. Seine Lebensdauer ist die gesamte Ausführung des Programms und sein gespeicherter Wert wird nur einmal vor dem Programmstart initialisiert.
[bearbeiten] Hinweise
Da sein gespeicherter Wert nur einmal initialisiert wird, kann ein Objekt mit statischer Speicherklasse die Aufrufe einer Funktion profilieren.
Die andere Verwendung des Schlüsselworts static ist die Dateibereich.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <stdio.h> void f (void) { static int count = 0; // static variable int i = 0; // automatic variable printf("%d %d\n", i++, count++); } int main(void) { for (int ndx=0; ndx<10; ++ndx) f(); }
Ausgabe
0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9