025
09.05.2002, 01:56
Kriz
|
Ja, static gilt auch für inline Funktionen!
Static bedeutet, daß die Funktion/Variable auch nur in dem Modul bzw. der Quelldatei bekannt ist, in dem die Implementierung bzw. die Definition stattfindet. Überall anders (in anderen Quelldateien) ist die Funktion/Variable dann nicht bekannt.
Folgende Tabelle sollte helfen:
static | extern | Typ | Bekannt im selben Modul | Außerhalb bekannt --------------------------------------------------------------------------- Ja | --- | Funktion | Ja | Nein --- | Ja | Funktion | Ja | Ja, wenn Prototyp in gemeinsamer Headerdatei Ja | --- | Variable | Ja | Nein --- | Ja | Variable | Ja | Ja, wenn dort als extern gekennzeichnet
Variablen, die in a.cpp normal (also als extern) deklariert worden sind, sind erst in b.cpp bekannt, wenn sie in b.cpp explizit als extern gekennzeichnet worden sind:
// a.cpp int a = 500;
// b.cpp extern int a; // Extra-Redeklaration von a // Ab hier kann a normal verwendet werden Bei Funktionen braucht man diese Extra-Redeklaration nicht, da Funktionen standardmäßig überall vorhanden sind (sofern sie nicht static sind und der Prototyp in einer gemeinsamen Headerdatei existiert, die a.cpp UND b.cpp einbinden).
--
K:R-I)Z++ "CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp In memory of Voice ( 2005/03/30)
Dieser Beitrag wurde am 09.05.2002 um 01:57 von Kriz bearbeitet.
|
|
Profil || Suche
|