Redefine Konstante

#619265
Lesenswert?

Also, da es sich nicht um eine Konstante sondern eine 
Präprozessoranweisung handelt, wird auch genau das geschehen:
Überall wo das Symbol 'xxx' auftaucht wird er es mit '1100' oder '200' 
ersetzen - das musst Du testen.

Innerhalb der Funktion heißt also ab dort kann es passieren, dass 
überall 'xxx' durch '200' ersetzt wird.

-> Es ist also von so einem Vorgehen abzuraten, weil je nach Position 
immer wieder neue "Effekte" entstehen können.

Und noch was ganz kleinkariertes: Konstanten sind konstant und werden 
nicht geändert (daher macht man sie ja konstant)!
Gast #619273
Lesenswert?

>Und noch was ganz kleinkariertes: Konstanten sind konstant und werden
>nicht geändert (daher macht man sie ja konstant)!

Jo, keine Sorge, so eine Frage bzw. Fragestellung schreit gerade zu nach 
kleinkarierten Antworten, das verkrafte ich schon ;-)

Da innerhalb eines Initialisierungsvorganges eine 
"_Präprozessoranweisung" nur  einmal für nur die eine Funktion geändert 
werden muss und nach dem diese Funktion durchlaufen ist (Code garantiert 
für nur einmaligen Durchlauf) die "_Präprozessoranweisung" wieder auf 
den ursprünglichen Wert zurückdefiniert wird, müsste ich also keine 
Probleme bekommen.
#619335
Lesenswert?

Unabhängig von den Argumenten, die gegen das lokale Umdefinieren einer 
Präprozessor-Definition sprechen - es handelt sich mitnichten um eine 
Konstante! - kann man die Warnung folgendermaßen wegkriegen:

#define xxx 1100

...

#undef xxx
#define xxx 200

Das xxx für eine Funktion umzudefinieren ist allerdings deswegen keine 
sonderlich gute Idee, weil der Präprozessor keine Ahnung von C-Scopes 
hat; man muß also die ursprüngliche Definition hinterher selbst 
wiederherstellen.

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