static const ?

#2440761
Lesenswert?
• ▲
▼
Dem Namen nach:
 sie definiert eine Konstante (const) mit eingeschränkter Sichtbarkeit 
(static) oder einer anderen Lebensdauer (funktionslokales static / 
klassenlokales static)

Welches genau der Fall ist kann man nicht genau sagen, solange du nicht 
zeigst, wie und wo diese Definition vorkommt.

Auch kann man nicht sagen ob es sich um eine echte Konstante handelt 
oder nur um eine Variable, die vom Programm aus nicht verändert werden 
darf. Das hängt wiederrum davon ab, ob du C oder C++ programmierst.

Kann natürlich auch alles ganz anders sein, wenn du weder in C noch in 
C++ programmierst.
Gast #2440999
Lesenswert?
• ▲
▼
Das Kommt drauf an (C),

static hat eine doppel Bedeutung eine Variable die innerhalb einer 
funktion static deklariert wird, behält Ihren wert ( und speicherplatz) 
auch wenn du die Funktion wieder verlassen hast.

eine globale Variable oder eine static Funktion bedeutet jedoch das die 
Variable oder Funktion nur innerhalb der Datei benutz werden kann.

mit den const sicherst du zu das sich der wert der Variablen nicht 
ändert innerhalb des Scopes der Variablen.
#2441846
Lesenswert?
• ▲
▼
Genau genommen sichert man mit const nur zu, daß man selbst über den 
Quelltext die Variable oder was auch immer nicht ändern möchte.
Ich bekomme i.d.R. einen Fehler, wenn ich es doch probiere.

Daß sie darüber hinaus auch anderweitig nicht geändert wird, kann der 
Compiler normalerweise getrost annehmen.

Allerdings schließt ein const nicht ein gleichzeitiges volatile aus.
Mit dem const sage ich wieder nur "ich ändere sie nicht", das volatile 
sagt "aber vielleicht jemand anderes".

=> const heißt nicht "konstant", sondern "ich ändere sie nicht hier im 
Quelltext (also im aktuellen scope)".

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren