Mögliches Duplikat:
Gibt es einen Trick, um eine Variable nach ihrer Deklaration konstant zu machen?
In C oder C++ haben wir manchmal eine Variable, die vielleicht const ist, aber wir müssen einige Codezeilen verwenden, um sie zu initialisieren.
Gibt es eine Möglichkeit, dem Compiler mitzuteilen, dass ab einem bestimmten Punkt in einer Funktion eine bereits konstruierte Variable als const betrachtet werden muss, bis ihr Geltungsbereich endet?
Etwa so:
int c = 0;
// the value of c is initialized here
switch(someVar) {
case foo: c = 3; break;
case bar: c = 4; break;
default : c = 42; // what else?
}
// now c is constant
ASSUME_CONST_FROM_NOW(c) // some #pragma maybe?
Ich weiß, dass ich die Variable in einer eigenen Funktion initialisieren könnte . Das ist nicht wirklich das, worum ich bitte.
Ein weiteres Beispiel:
int c = 0; int d = 0;
{ /*some block of code that initializes both c and d jointly*/ }
ASSUME_CONST_FROM_NOW(c, d)
Es gibt keine Funktion, die zwei Werte auf einmal zurückgeben kann, ohne Strukturen oder Klassen zu erstellen.
Aber ein solcher Trick könnte nützlich sein, um alten, miserablen Code mit wenig Refactoring leichter verständlich zu machen.