> ich meinte nicht überschreibbare Konstante. Wenns das nicht gibt - auch ok.
Klar gibt es das in C. Sogar auf zwei Arten (ich erkläre es jetzt für
den Typ "int"):
Legt eine "Variable" namens x an, die den Wert 23 enthält und nicht
(oder nicht ohne implementierungs-spezifische Tricks) überschrieben
werden kann. Das entspricht am ehesten "final".
Daneben gibt es eine zweite Möglichkeit, da eine const-Variable in
gewisser Hinsicht immer noch als Variable behandelt wird - z.B. kann man
in Standard-C den Variablenwert nicht für Arraygrößen verwenden, da es
ja eine Variable ist und für Arraygrößen nur Konstante Ausdrücke
zugelassen werden. Ganz einsichtig ist das nicht, aber so ist es eben.
Deshalb gibt es die Möglichkeit, über den Präprozessor ein Macro zu
definieren:
Diese Variante ist wenig mehr als eine Textersetzung x->23 und
funktioniert deshalb auch für Arraygrößen. ("wenig mehr" bedeutet hier,
dass der Buchstabe x z.B. nur ersetzt wird, wenn er nicht Teil eines
längeren Bezeichners ist, so wie in "extremwert"). Dann gibt es aber
keine Variable mehr von der man z.B. die Adresse berechnen könnte.