Seite 1 von 1

c:var:static

Verfasst: Fr Okt 10, 2008 3:02 pm
von Dirty Oerti
Tag! :)

Ich hab den Artikel mal geschrieben.
Fehler sind mit im Preis enthalten ;)

MfG
Daniel

http://tutorial.proggen.org/doku.php?id=c:var:static

Re: c:var:static

Verfasst: Fr Okt 10, 2008 3:08 pm
von Xin
Nur kurz angelesen...

Warum hat static bei Funktionen eine ganz andere Bedeutung?

Re: c:var:static

Verfasst: Fr Okt 10, 2008 3:22 pm
von Dirty Oerti
static bei Funktionen bedeutet, dass die Funktion nur in der jeweiligen Datei benutzt werden kann.
Quelle: http://de.wikibooks.org/wiki/C-Programm ... tic_%26_Co.
wikibook hat geschrieben:Auch vor Funktionen kann das Schlüsselwort static stehen. Das bedeutet, dass die Funktion nur in der Datei, in der sie steht, genutzt werden kann.

Re: c:var:static

Verfasst: Fr Okt 10, 2008 3:31 pm
von Xin
Dirty Oerti hat geschrieben:static bei Funktionen bedeutet, dass die Funktion nur in der jeweiligen Datei benutzt werden kann.
Das ist eine Sonderbedeutung, die man in c:func erwähnen kann.
In C sind alle Funktionen automatisch static, genauso wie alle globalen Variabeln.

Und wie sieht das mit globalen static Variablen aus? Darf man die nicht exportieren, also als extern bezeichnen?

Re: c:var:static

Verfasst: Fr Okt 10, 2008 3:43 pm
von Dirty Oerti
Weiß ich nicht genau...

Code: Alles auswählen

extern static int blubl;
führt zu
Fehler: mehrere Speicherklassen in Deklaration

Re: c:var:static

Verfasst: Fr Okt 10, 2008 4:25 pm
von Xin
Dirty Oerti hat geschrieben:Weiß ich nicht genau...

Code: Alles auswählen

extern static int blubl;
führt zu
Fehler: mehrere Speicherklassen in Deklaration
Logisch... die Headerdatei bekommt:
extern int blubl;

die .c Datei:
static int blubl;