Wozu das static keyword in C?
-
In C++ ist es klar, dass man die statische Methoden einer Klasse aufrufen kann, ohne diese davor zu instanzieren aber wozu in C? Vllt ein kurzes Bsp?
-
In C schränkt es die Sichtbarkeit auf die Quelldatei ein.
-
In C++ auch
Nur static bei Klassenelementen hat in C++ eine andere Bedeutung. Da es in C keine Klassen gibt (und auch kein static-Keyword in structs), ist diese Bedeutung hier aber hinfällig.
-
Ganz einfach:
int counter() { static int counter = 0; counter += 1; return counter; }
Jedesmal wenn du die Funktion aufrufst, würde ohne static counter neu angelegt werden und der Wert wäre immer 1. So wird counter nur beim ersten Aufruf angelegt und kann mit jedem Aufruf inkrementiert werden.
rya.
-
Scorcher24 schrieb:
So wird counter nur beim ersten Aufruf angelegt...
vor dem ersten aufruf.