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