Verständnisfrage: #define, Preprocessor und Compiler
lima-city → Forum → Programmiersprachen → C/C++ und D
antwort
anweisung
beispiel
bild
borland
builder
compiler
error
fehler
fragen
meldung
nes
netzen
platzhalter
prinzip
quelltext
thw
verborgen adieu
vorkommen
wochenende
-
Hallo,
ich habe mich gerade sehr ?ber ein Ph?nomen in C gewundert, das ich gern verstehen w?rde.
Nach meinem Verst?ndnis bedeutet die Anweisung
#define max 9
dass der Preprocessor im Prinzip alle Vorkommen von "max" im Quelltext durch "9" ersetzt.
Nat?rlich hatte ich das auch flei?ig verwendet, zum Beispiel in einer derartigen if-Abfrage:
if((max>=(i+1)) && (bild[i+1][j]=='#')) found=1;
Beim Kompilieren jhat der Compiler jedesmal die Meldung "parse error before ';' token" gebracht. Als ich dann selbst das "max" durch "9" ersetzt hatte, lief die Kompilierung pl?tzlich einwandfrei durch und das Programm funktioniert.
Meine Frage ist jetzt: Warum ist das so? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
hmm, habe es gerade visual c++, borland builder und dev-c++ ausprobiert und konnte deinen Fehler nicht reproduzieren.
Was benutzt du f?r einen Compiler?
Und wenn es keine M?he macht, lad doch mal das entsprechende Sourcefile irgendwo ins Netz...vielleicht liegt der Fehler ja irgendwo anders verborgen.
adieu
talpa -
max ist Teil der STL. K?nnte damit zusammenh?ngen. Benutz statt max mal einen anderen Platzhalter (MAX_BILDER_ANZAHL oder so ?hnlich) und probier es nochmal.
-
@0-checka: Du hattest recht. Hab mal den Bezeichner "bildnum" verwendet, und da ging's pl?tzlich. Sowas muss man doch gesagt bekommen... Danke!
@talpa: Ich benutze den gcc. Es ging ?brigens auch um C und nicht um C++. Trotzdem danke f?r deine Antwort!
Sch?nes Wochenende,
thw -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage