Namensräume
Varianten
Aktionen

Statische Speicherklasse

Von cppreference.com
< c‎ | Sprache

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

#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