Jan H. schrieb:
> Eine globale variabele ist sowieso immer "static".
Nein. Globale Variable sind nie "static", weil "static" ausserhalb von
Funktionen so ungefähr das Gegenteil von "global" darstellt. Global
heisst: Der Name ist über den Quelltext eines .c Files hinaus bekannt.
"static" hat netterweise 2 recht verschiedene Bedeutungen, was zur
Verwirrung beiträgt. Innerhalb von Funktionen ändert es nichts am
Namescope, sondern beschreibt es die Art der Allokation. Ausserhalb von
Funktionen ändert es nichts an der Allokation, sondern reduziert den
Namescope von global auf File, d.h. der Name ist ausserhalb des Files
nicht bekannt.
Dass man gerne "static storage" als Bezeichnung für feste
Speicherallokation verwendet macht die Sache nicht einfacher.
> Muss dan in .c oder in .h die Variabele declariert werden ?
In .h deklariert, in einem .c definiert.