Hi, was macht die deklarierung: static const var ???
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.
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.
imon schrieb: > Das Kommt drauf an (C), > > static hat eine doppel Bedeutung Und in C++ hat es noch eine dritte.
>mit den const sicherst du zu das sich der wert der Variablen nicht >ändert innerhalb des Scopes der Variablen. Ausserhalb des Scopes ändert sich die Variable wohl auch nicht!
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)".
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.