c / intermediate
Snippet
Persistenz mit statischen Variablen
Statische Variablen innerhalb eines Funktionsbereichs werden nur einmal initialisiert und behalten ihren Wert zwischen Funktionsaufrufen bei. Dies bietet eine Möglichkeit, den Zustand zu speichern, ohne den globalen Namensraum zu belasten.
snippet.c
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>int get_next_id() {static int counter = 0;return ++counter;}int main() {printf("%d\n", get_next_id()); // 1printf("%d\n", get_next_id()); // 2return 0;}
Erklärung
1
static int counter = 0;
Deklariert eine Variable, die ihren Wert über mehrere Funktionsausführungen hinweg behält.
2
return ++counter;
Inkrementiert den persistenten Wert und gibt ihn an den Aufrufer zurück.