Hallo, ich habe eine Frage zur Präprozessoranweisung #ifdef. Ich mochte einen Teil des quellcodes nur kompilieren, wenn ein define einen bestimmten wert hat oder nicht hat z.B #ifdef BUFLENGTH != 256 Quellcode; #endif Wenn ich es so schreibe bekomme ich allerdings Warnungen ../my_uart_xx4.c:127:18: warning: extra tokens at end of #ifdef directive ist das so, wie ich mir das vorstelle, überhaupt möglich? Gruß, ALex
dann bekomme ich diese Warnung: ../my_uart_xx4.c:127:18: warning: extra tokens at end of #ifdef directive noch was am Rande: ich arbeite mit AVR Studio Alex
Warum #ifdef? In dem Fall müsste ein einfaches #if her! #ifdef überprüft lediglich, ob ein Ausdruck definiert ist. Syntaktisch korrekt wäre entweder
1 | #ifdef BUFLENGTH
|
2 | //...
|
3 | #endif
|
Das würde aber nicht das machen, was Du vermutlich willst, sondern eben nur überprüfen, ob BUFLENGTH bereits definiert ist oder nicht. #ifdef ist nur eine Abkürzung für #if defined. Wenn Du eine Bedingung überprüfen willst, dann
1 | #if BUFLENGTH != 256
|
2 | //...
|
3 | #endif
|
Und ob Du mit AVRStudio arbeitest oder nicht, spielt dabei keine Rolle.
Er will ja schauen, ob der Ausdruck definiert ist. So sollte es aber klappen: #ifdef BUFLENGTH #if BUFLENGT != 256 // code #endif #endif
@ A***** F***** nein, ich wollte schauen, ob er als ein bestimmter Wert definiert ist. Definiert ist er immer. War vielleicht etwas unkonkret formuliert. Gruß, Alex
A***** F***** wrote: > Er will ja schauen, ob der Ausdruck definiert ist. So sollte es aber > klappen: Woher willst Du das wissen? Aus seinem Posting geht eher das Gegenteil hervor! Zitat: > Ich mochte einen Teil des quellcodes nur kompilieren, wenn ein define > einen bestimmten wert hat oder nicht hat
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.