Mit static geprefixte Variablen werden erst nach beendung des Programms gelöscht und können deshalb über das Scope hinaus überleben und abrufbar bleiben.

static int fest = 0;

Die Initialisierung einer static-Variable wird nur beim ersten mal aufgerufen!

Beispiel

void func()
{
    static int fest = 0;
    int variabel = 0;
    fest++;
    variabel++;
    printf("Fest: %d, Variabel: %d\n", fest, variabel);
}
 
int main()
{
    func();
    func();
    func();
    func();
    func();
    return 0;
}

Ausgabe:

Fest: 1, Variabel: 1
Fest: 2, Variabel: 1
Fest: 3, Variabel: 1
Fest: 4, Variabel: 1
Fest: 5, Variabel: 1