Problem mit Makro über mehrere Zeilen

Gast #2803776
Lesenswert?
• ▲
▼
Ich habe hier gerade ein wahrscheinlich ganz banales Problem...

Ich habe ein Marko definiert in C, welches folgendermaßen aussieht:
1
#define NUMBER_8 (SEG_a | SEG_b | SEG_c | SEG_d | SEG_e | SEG_f | SEG_g)

Hinter den "SEG_a" verbirgt sich wiederum ein weiteres Makro, welches 
eine Hex-Zahl beherbergt, die den Anschluss des Segments am 
Schieberegister kennzeichnet.

Meine Definition geht aber jetzt über mehrere Zeilen, da die Bezeichner 
auch mal länger sind, ist auch egal...was ich jedoch gerade machen will 
ist das hier:
1
#define NUMBER_8 (SEG_a | SEG_b | SEG_c |
2
                  SEG_d | SEG_e | SEG_f | SEG_g)

Das dient rein der Übersichtlichkeit, da der Text sonst aus der 
druckbaren Zeile läuft.

Jetzt habe ich im Internet gefunden, dass ich mit einem "\" das #define 
über mehrere Zeilen verteilen kann, also habe ich:
1
#define NUMBER_8 (SEG_a | SEG_b | SEG_c |      \
2
                  SEG_d | SEG_e | SEG_f | SEG_g)

Aber das geht nicht. Da, wo ich "NUMBER_8" benutzen will, sagt der 
Compiler "expected an expression". Wenn alles in einer Zeile steht, dann 
geht es problemlos. Was läuft jetzt schief? Geht die OR-Verknüpfung 
nicht über die Zeilen? Oder woran liegt es?

Danke

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.