busche schrieb:
> und ich dachte "//" ist nur zeilenbezogen ?!
Das Problem ist im eigentlichen Sinne nicht das // sondern das \ am
Zeilenede.
Eine Zeile im Editor, die mit einem \ gefolgt von einem Zeilendezeichen
(Carriage Return Linefeed) aufhört, wird vom Präprozessor als
Zeilfortsetzungszeichen gewertet.
D.h. Du möchtest gerne aus irgendwelchen Gründen eine logische Zeile in
mehrere physische Zeilen auftrennen, möchtest aber haben, das der
COmpiler das als eine einzige Zeile ansieht.
Aus
1 | irgendwas \
|
2 | irgendwas_anderes
|
macht der Präprozessor
1 | irgendwas irgendwas_anderes
|
indem er den COntuniation Character auswertet und wie befohlen die
Zeilen zusammengezogen hat.
Bei dir ist das eben
1 | // irgendwas \
|
2 | irgendwas_anderes
|
was vom Präprozessor zu
1 | // irgendwas irgendwas_anderes
|
zusammengezogen wird.
Und damit findet sich das 'irgendwa_anderes' plötzlich im Kommentar
wieder.
> wie kann dann der interrupt
> da hinein geraten.
Das passiert hauptsächlich dadurch, das der Programmierer kein C-Buch
gelesen hat. Denn da würden solche Sachen (und noch viele mehr) nämlich
drinn stehen. Unter anderem auch die Reihenfolge, in der der
Präprozessor bestimmte Dinge auswertet und Codemodifikationen vornimmt