Speicherklassenspezifizierer mit Funktionsdeklarationen
Sie können in Funktionsdeklarationen entweder den static
-Speicherklassenspezifizierer oder den extern
-Speicherklassenspezifizierer verwenden. Funktionen besitzen immer eine globale Lebensdauer.
Microsoft-spezifisch
Funktionsdeklarationen auf der internen Ebene haben dieselbe Bedeutung wie Funktionsdeklarationen auf externer Ebene. Dies bedeutet, dass eine Funktion nach der Deklaration in der gesamten Übersetzungseinheit sichtbar ist, selbst wenn sie im lokalen Gültigkeitsbereich deklariert wurde.
Ende Microsoft-spezifisch
Die Sichtbarkeitsregeln für Funktionen weichen geringfügig von den Regeln für Variablen ab:
Eine Funktion, die als
static
deklariert wird, ist nur innerhalb der Quelldatei sichtbar, in der sie definiert ist. Funktionen in der gleichen Quelldatei können diestatic
-Funktion aufrufen, aber Funktionen in anderen Quelldateien können auf sie nicht direkt anhand ihres Namens zugreifen. Sie können eine weiterestatic
-Funktion gleichen Namens in einer anderen Quelldatei deklarieren, ohne dass ein Konflikt auftritt.Die Funktionen, die als
extern
deklariert werden, sind in allen Quelldateien im Programm sichtbar (es sei denn, dass Sie später eine solche Funktion noch mal alsstatic
deklarieren). Jede Funktion kann eineextern
-Funktion aufrufen.Funktionsdeklarationen, die die Speicherklassenspezifizierer auslassen, sind standardmäßig
extern
.
Microsoft-spezifisch
Microsoft lässt eine Neudefinition eines extern
-Bezeichners als static
zu.
Ende Microsoft-spezifisch