Was bedeutet dieser Code: (insbesondere, was bedeutet ein Backslash '\' ? )
s23_foo += \
s8_foo * s16_bar;
Ich habe die Datentypen hinzugefügt, weil sie relevant sein könnten. Vielen Dank für deine Hilfe.
Was bedeutet dieser Code: (insbesondere, was bedeutet ein Backslash '\' ? )
s23_foo += \
s8_foo * s16_bar;
Ich habe die Datentypen hinzugefügt, weil sie relevant sein könnten. Vielen Dank für deine Hilfe.
Backslashes bedeuten in C++ je nach Kontext zwei verschiedene Dinge.
Außerhalb eines Zeichenketten (siehe unten) wird ein \
als Zeilenfortsetzungszeichen verwendet. Die nach dem Ende der Zeile folgende Zeilenumbruch (nicht sichtbar) wird vom Präprozessor effektiv ignoriert und die folgende Zeile wird an die aktuelle Zeile angehängt.
Also:
s23_foo += \
s8_foo * s16_bar;
Wird geparst als:
s23_foo += s8_foo * s16_bar;
Zeilenfortsetzungen können verkettet werden. Dies:
s23_foo += \
s8_foo * \
s16_bar;
Wird zu diesem:
s23_foo += s8_foo * s16_bar;
In C++ ist Leerzeichen in den meisten Kontexten irrelevant, also ist in diesem speziellen Beispiel die Zeilenfortsetzung nicht erforderlich. Dies sollte problemlos kompiliert werden:
s23_foo +=
s8_foo * s16_bar;
Und kann tatsächlich hilfreich sein, um den Code zu paginieren, wenn Sie eine lange Sequenz von Ausdrücken haben.
Da der Präprozessor ein #define
bis zum Zeilenumbruch verarbeitet, sind Zeilenfortsetzungen in Makrodefinitionen am nützlichsten. Zum Beispiel:
#define FOO() \
s23_foo += \
s8_foo * s16_bar;
Ohne das Zeilenfortsetzungszeichen wäre FOO
hier leer.
In einem Zeichenketten wird ein Backslash als Begrenzer verwendet, um eine 2-Zeichen-Escape-Sequenz zu beginnen. Zum Beispiel:
"hello\n"
In diesem Zeichenliteral beginnt das \
eine Escape-Sequenz, wobei der Escape-Code n
ist. \n
führt zu einem Zeilenumbruchzeichen, das in die Zeichenkette eingebettet wird. Natürlich bedeutet dies, dass wenn Sie möchten, dass eine Zeichenkette das Zeichen \
enthält, müssen Sie das auch escapen:
"hello\\there"
führt dazu, dass die Zeichenkette auf dem Bildschirm wie folgt aussieht:
hello\there
Die verschiedenen Escape-Sequenzen sind hier dokumentiert.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.