Wofür Kommentare gut sind
Ein Kommentar ist Text in deinem Quellcode, den der C++-Compiler vollständig ignoriert. Er gelangt nie in das kompilierte Programm - er existiert ausschließlich für Menschen, die den Code lesen. Du verwendest Kommentare, um zu erklären, warum etwas auf eine bestimmte Weise gemacht wird, um Erinnerungen zu hinterlassen oder um Code vorübergehend zu deaktivieren, ohne ihn zu löschen.
Aufbauend auf der C++-Syntax, die du bereits kennst, gehören Kommentare zu den wenigen Dingen, die du fast überall platzieren kannst und die der Compiler einfach überspringt. C++ hat zwei Arten: einzeilig (//) und mehrzeilige Blockkommentare (/* */).
Einzeilige Kommentare
Zwei Schrägstriche (//) beginnen einen Kommentar, der bis zum Ende der aktuellen Zeile läuft. Der Compiler überspringt alles vom // bis zum Zeilenumbruch.
Beachte, dass der zweite Kommentar sich eine Zeile mit echtem Code teilt. Alles vor dem // wird weiterhin ausgeführt; nur der Teil danach wird ignoriert. Das ist der gängigste Kommentarstil für kurze Notizen.
Mehrzeilige Blockkommentare
Wenn sich deine Notiz über mehrere Zeilen erstreckt, ist ein Blockkommentar sauberer, als jeder Zeile ein // voranzustellen. Ein Blockkommentar beginnt mit /* und endet mit */. Alles dazwischen - egal wie viele Zeilen - wird ignoriert.
Die am linken Rand ausgerichteten *-Zeichen sind eine Stilkonvention, keine Regel. Die einzigen Teile, die wirklich zählen, sind das öffnende /* und das schließende */. Ein Blockkommentar kann sogar mitten in einer Zeile stehen - int x = 5 /* width */ + 2; ist gültig - auch wenn das schnell schwer zu lesen wird.
Code auskommentieren
Kommentare sind der übliche Weg, Code beim Experimentieren zu deaktivieren, ohne ihn zu löschen. Verwende // für eine einzelne Zeile oder einen Blockkommentar, um mehrere Zeilen auf einmal abzuschalten.
Führe es aus und du wirst sehen, dass nur die beiden „runs"-Zeilen ausgegeben werden. Die auskommentierten cout-Anweisungen sind für den Compiler unsichtbar.
Die Verschachtelungsfalle
Eine Falle, die Anfänger erwischt: Blockkommentare lassen sich nicht verschachteln. Das erste */ schließt den Kommentar, egal wie viele /* davor standen. Du kannst also keinen /* ... */-Block in einen anderen /* ... */-Block einschließen - das innere */ beendet das Ganze, und alles danach wird wieder zu Code (üblicherweise ein Syntaxfehler).
/* Trying to disable a region that already has a block comment...
int n = 10; /* the width */
cout << n;
*/ // the first */ above already closed the comment - this line is now stray code
Der äußere Kommentar endet beim */ nach the width, der Rest ist also nicht mehr auskommentiert und der Compiler verschluckt sich am abschließenden */. Wenn du einen Bereich deaktivieren musst, der bereits Blockkommentare enthält, verwende stattdessen // in jeder Zeile. Die meisten Editoren schalten Zeilenkommentare über eine ganze Auswahl mit einem einzigen Tastenkürzel um, was das Problem vollständig umgeht.
Gute Kommentare vs. Rauschen
Ein Kommentar sollte etwas erklären, das der Code nicht von sich aus sagen kann. Kommentare, die lediglich den Code wiederholen, sorgen für Unordnung und veralten tendenziell, sobald sich der Code ändert.
// Bad: just repeats what the code obviously does
i = i + 1; // add one to i
// Better: explains the reason, which the code can't show
retries++; // back off and retry; the API is rate-limited at 5 req/sec
Strebe danach, den Code durch klare Namen und gute Struktur lesbar zu machen, und hebe dir Kommentare für das Warum auf: Absicht, Kompromisse, Sonderfälle und Verweise auf den Kontext. Wenn du dabei bist, einen Kommentar zu schreiben, um eine verwirrende Zeile zu erklären, ist das oft ein Hinweis darauf, stattdessen eine Variable umzubenennen oder die Logik in eine gut benannte Funktion aufzuteilen.
Weiter: Variablen
Jetzt, da du deinen Code mit Anmerkungen versehen kannst, ist der nächste Baustein, darin Daten zu speichern. Die nächste Seite behandelt Variablen: wie man sie deklariert, die eingebauten Typen, die sie aufnehmen, und die Regeln, die C++ als statisch typisierte Sprache durchsetzt.
Häufig gestellte Fragen
Wie schreibt man einen Kommentar in C++?
Verwende // für einen einzeiligen Kommentar - alles danach in dieser Zeile wird vom Compiler ignoriert. Für einen Kommentar, der sich über mehrere Zeilen erstreckt, schließe den Text zwischen /* und */ ein. Zum Beispiel: // das ist eine Notiz oder /* das geht über mehrere Zeilen */.
Was ist der Unterschied zwischen // und /* */ in C++?
// kommentiert den Rest einer einzelnen Zeile aus, du brauchst also in jeder Zeile eines. /* */ ist ein Blockkommentar, der bei /* beginnt und bis zum nächsten */ läuft, sogar über viele Zeilen hinweg. Verwende // für kurze Inline-Notizen und /* */, um einen Text- oder Codeabschnitt auf einen Schlag zu deaktivieren.
Kann man Kommentare in C++ verschachteln?
Nein. Blockkommentare (/* */) lassen sich nicht verschachteln - das erste */ schließt den Kommentar, egal wie viele /* davor standen. Um einen Bereich zu deaktivieren, der bereits Blockkommentare enthält, setze stattdessen // in jede Zeile (die meisten Editoren erledigen das mit einem einzigen Tastenkürzel).