Wie lange Zeilen umbrechen?

Gast #918523
Hallo,
um mein Program etwas besser lesbar und später nachvollziehbar zu machen 
würde ich gerne die Variablen wie folgt beschreiben:
1
TCCR1A = (1<<COM1A1) | \    //Compare Output Mode for Channel A (Page 136)
2
         (0<<COM1A0) | \    //Compare Output Mode for Channel A (Page 136)
3
   (0<<COM1B1) | \    //Compare Output Mode for Channel B (Page 136)
4
   (0<<COM1B0) | \    //Compare Output Mode for Channel B (Page 136)
5
   (0<<COM1C1) | \    //Compare Output Mode for Channel C (Page 136)
6
   (0<<COM1C0) | \    //Compare Output Mode for Channel C (Page 136)
7
   (1<<WGM11)  | \    //WaveFormGenerationMode (Page 138)
8
   (0<<WGM10);      //WaveFormGenerationMode (Page 138)
Dabei meckert WinAvr aber mit
1
../HelloWorld2.c:33: error: stray '\' in program

Warum geht das so nicht?

Danke
 Werner
Gast
Der '\' muss das letzte Zeichen in der Zeile sein, aber das würde in 
deinem Fall den ersten Kommentar verlängern.
Wenn du einfach noch ein Paar Klammern benutzt geht's auf jeden Fall:
1
TCCR1A = ( 
2
    (1<<COM1A1) |    //Compare Output Mode for Channel A (Page 136)
3
    (0<<COM1A0) |    //Compare Output Mode for Channel A (Page 136)
4
    (0<<COM1B1) |    //Compare Output Mode for Channel B (Page 136)
5
    (0<<COM1B0) |    //Compare Output Mode for Channel B (Page 136)
6
    (0<<COM1C1) |    //Compare Output Mode for Channel C (Page 136)
7
    (0<<COM1C0) |    //Compare Output Mode for Channel C (Page 136)
8
    (1<<WGM11)  |    //WaveFormGenerationMode (Page 138)
9
    (0<<WGM10)       //WaveFormGenerationMode (Page 138)
10
   ) ;

hth. Jörg
Moderator Persönliche Seite
Jörg X. wrote:

> Wenn du einfach noch ein Paar Klammern benutzt geht's auf jeden Fall:

Es geht auch komplett ohne Klammern.  Newlines sind einfach nur
whitespace in C und dürfen daher überall dort stehen, wo auch ein
Leerzeichen oder ein Kommentar stehen darf.

Die Zeilenfortsetzung mit "\\\n" hat eigentlich nur an einer einzigen
Stelle Sinn: innerhalb der Definition eines Makros.  Wie bereits
bemerkt, muss dann aber der Backslash wirklich unmittelbar vor dem
Zeilenende stehen.  Wenn man trotzdem noch einen Kommentar unterbringen
will, muss man einen ,,klassischen'' C-Kommentar davor anbringen:
1
#define FOO \
2
   (1 << BAR) /* set the BAR bit */ |\
3
   (1 << DOO) /* ...and the DOO bit, too */

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 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.