PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mit #define zugewiesene Konstanten nicht zuweisbar?



EDatabaseError
21.05.2008, 09:02
Moin zusammen,

kann mir bitte jemand sagen warum ich eine mit #define definierte konstante nicht auf Variablen zuweisen kann?

Bspw: #define meineKonstante 1;

Im Source: Variable = meineKonstante;
->löst einen Compilererror aus das er eine Klammer anstatt dem semikolon erwartet..

An welchem Schalter muss man drehen das das funktioniert?
Danke

Tobi

Ceos
21.05.2008, 09:06
wei das smikolon HINTER dem define zu viel ist,

# sind precompileranweisungen, der sucht ALLE begriffe die meineKonstante heissen und ersetzt diese mit 1;

d.h. in deinem text steht
Variable = 1;;

EDIT stell dir bildlich vor das der precompiler über deinen source geht und wort für wort ersetzt was du da geschrieben hast, am ende compiliert er den text erst durch.

EDatabaseError
21.05.2008, 09:11
Aha ;) ok ist logisch... Danke für die schnelle hilfe

fluchtpunkt
21.05.2008, 16:25
Bspw:
Bitte das naechste mal den fehlerhaften Code posten, dein Beispiel funktioniert naemlich hervorragend.


d.h. in deinem text steht
Variable = 1;;
und? Das kompiliert einwandfrei. ";" Bedeutet einfach NOP. Und wird idR vom Compiler? wegoptimiert.



Meine Vermutung ist das hier mal wieder das "Beispielsweise"-Problem zugeschlagen hat, und die Variable in einer Schleife oder If-Konstruktion verwendet wurde.

EDatabaseError
21.05.2008, 17:09
Fast. Wurde in einem Funktionsaufruf verwendet. Trotzdem wär es nicht die feinste art in einem Code ein nop zu verstecken welches nicht dokumentiert ist.

Codesample konnte ich leider nicht online stellen weil ich nur über nen PDA über ein hotspot online war.