Wie lange Zeilen umbrechen?

Gast #918523
Lesenswert?

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 #918540
Lesenswert?

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 #918589
Lesenswert?

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

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