Gast
#2600643
Hallo,
ich habe ein kleines Veständnisproblem bei static Variablen.
Es geht darum, innerhalb einer Funktion eine lokale Variable als static
zu deklarieren.
Annahme:
Ich hab eine Modul mit mehreren void-Funktionen die irgendetwas machen.
Die Static-Variable kann nur innerhalb dieses Moduls verwendet werden.
Von außen ist sie ja "unsichtbar".
Gleichzeit erfolgt die Initialisierung nur einmal, d.h. sie behält ihre
Werte im Gedächtnis.
Das würde aber doch in folgendem Beispiel dazu führen, daß die Variable
irgendwann überläuft. Ist das richtig ?
void test1(void)
{
static unsigned int var = 0;
var++;
}
void test2(void)
{
static unsigend int var = 0;
var++;
}
void test3(void)
{
static unsigned int var = 0;
var ++;
}
Rein theoretisch würde doch die Variable nie wieder auf 0 initialisiert
werden, sondern nur einmal von der Funktion, die am ersten aufgerufen
worden ist, und danac würe var immer nur inkrementiert werden. Richtig ?
Danke
Olaf