Variabeln als "static" definieren
-
Hy, ich programmiere schon seit einem Weilchen. Bei der Durchsicht von Beipsielen ist mir dabei aufgefallen, dass viele Variabeln als "static" definiert werden. In meinen Unterlagen finde ich leider keine Erklärung dafür..
-> Wann muss ich denn eine Variable als "static" definieren?
Gruss Thomas
-
static bedautet IMO nur, dass beim Verlassen der Funktion die Varaiblen ihren Wert behalten.
So zum Beispiel:
void f(void) { static int i; cout << "Die Funktion wurde " << i << " mal aufgerufen!" << endl; ++i; }
-
static ausserhalb von Funktionen bedeutet, dass die Variable nur im aktuellen Modul (C-Datei) gültig ist, und somit bei Neudefinition in einem weiteren Modul kein Linkerfehler von wegen Neudefinition generiert wird.
-
Und bei Klassen bedeutet eine static deklaration, dass diese Variable/Funktion
nur ein mal für die ganze Klasse angelegt wird.
-
OK, ich denke, ich habe es begriffen.
Danke und Gruss
Thoams