Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
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:
Quellcode:
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:
Quellcode:// a.cpp
int a = 500;

Quellcode:// 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.
zum Seitenanfang zum Seitenende Profil || Suche