Hi Leute Habe kürzlich mehr durch Zufall zwei Präprozessoranweisungen wie folgt geschachtelt: #define a #define b #ifdef a . . . #ifdef b . #else . #endif . . . #endif Das Ergebnis war allerdings nicht das gewünschte. Alles nach dem ersten #endif wurde grundsätzlich in den übernommen, egal ob a definiert war oder nicht. Dazu folgende Frage: Kann man Präprozessoranweisungen grundsätzlich nicht schachteln (habe dazu nix in der Literatur gefunden), oder geht das nur mit dem IAR nicht?
In der GCC-Doku steht
>"[...]#endif always matches the nearest #ifdef (or #ifndef, or #if)[...]"
d.h. das kann man schachteln.
Beachte aber, das das '#' immer in der ersten Spalte stehen muss:
1 | #if A
|
2 | #if B //geht nicht, wird nicht als Präprozessoranweisung erkannt!
|
3 | #endif
|
4 | |
5 | # if B // geht und ist übersichtlich
|
6 | # endif
|
7 | #endif
|
hth. Jörg
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.