ifndef besser verschachteln

Gast #999922
Lesenswert?

Hallo

Ich habe eine Header-File für eine MCU Familie geschrieben. Leider 
liegen bei einigen Modellen die MMRs unterschiedlich. Ich habe das ganze 
so gelöst, dass man mit einem Compilersymbol den aktiven Controller 
auswählen kann. Ist kein Controller per Symbol aktiviert, soll eine 
Fehlermeldung angezeigt werden. Im Moment mache ich das so:

[...]
#ifndef ADUC7033
#ifndef ADUC7034
#ifndef ADUC7128
#ifndef ADUC7129
#error Please define MCU type with -DADUC7xxx, where xxx represents the 
exact model type.
#endif
#endif
#endif
#endif
[...]

Das ganze sieht nicht sonderlich schön aus. Kann man das besser machen? 
Ich habe leider nichts gefunden.
#ifdef (!ADUC7033 && !ADUC7034 ......
funktioniert leider nicht.
Gast #1000618
Lesenswert?

Danke, so gehts.
1
* Check MCU type is set */
2
#if ! defined(ADUC7019) && ! defined(ADUC7020) && ! defined(ADUC7021) && ! defined(ADUC7022) && \
3
  ! defined(ADUC7023) && ! defined(ADUC7024) && ! defined(ADUC7025) && ! defined(ADUC7026) && \
4
  ! defined(ADUC7027) && ! defined(ADUC7028) && ! defined(ADUC7032) && ! defined(ADUC7033) && \
5
  ! defined(ADUC7034) && ! defined(ADUC7128) && ! defined(ADUC7129)
6

7
  #error Please define MCU type with -DADUC7xxx, where xxx represents the exact model type.
8
#endif

Bin da hängen geblieben, weil man am Zeilenende ein Backslash setzen 
muss, da anscheinend Compiler-Anweisungen am Zeilenende aufhören.

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