Kommentare

In C und C++ unterscheidet man zwischen einzeiligen und geklammerten Kommentaren. Einzeilige Kommentare werden mit einem doppelten Slash // eingeleitet und veranlassen den Compiler, sämtliche Zeichen bis zum Ende der Zeile zu ignorieren.

// This is a comment int x = 5; // This variable is initialized with five.

Geklammerte Kommentare stehen innerhalb der Zeichenfolge /* und */ wobei sämtliche Zeichen, inklusive Zeilenwechsel, die dazwischen stehen, vom Compiler ignoriert werden.

/* This comment has multiple lines.*/ int x = /*5*/ 6;

Details

Kommentare zu schreiben ist wichtig, zum einen, um den Code einer fremden Person, die ihn möglicherweise verstehen muss, besser verständlich zu machen. Nicht zuletzt sind Kommentare jedoch auch eine Hilfe für den Programmierer selbst und ein Gestaltungsmittel. Beispielsweise können wichtige Code-Blöcke mittels optisch unterstützenden Kommentaren hervorgehoben werden. Zudem färben moderne Editoren Kommentare oftmals in einer speziellen Farbe ein, was eine zusätzliche Orientierung bietet.

printf("Some boring code."); ////////// THE MAIN KERNEL ////////// result = 42; ///////// END OF THE KERNEL ///////// printf("Again, boring code.");

Grundsätzlich sind die einzeiligen Kommentare dafür gedacht, kurze Kommentare zu schreiben oder ganze Zeilen auszukommentieren. Die geklammerten Kommentare sind dafür da, längere erklärende Texte zu umfassen, oder aber einen Teil des Codes inmitten einer Zeile auszublenden.

x++;y++; // go to the next coordinates //x = y + 1; /* Now the coordinates of the point are set and we can calculate the distance to the 0-vector. */ dist = sqrt(/*x + y*/ x*x + y*y);

Geklammerte Kommentare können nicht verschachtelt werden. Da der Compiler sämtliche Zeichen (also auch die Zeichenfolge /*) ignoriert, wird somit die erste abschliessende Zeichenfolge */ als Kommentarende angesehen.

/* This is /* not */ a correct comment. */

Vorsicht ist auch geboten beim einzeiligen Kommentar. Wenn bei einem einzeiligen Kommentar am Ende der Zeile ein Backslash \ steht, so wird das Zeilenende durch den Endline-Escape-Character entfernt und der Compiler ignoriert auch die folgende Zeile. Folgendes Beispiel wird somit niemals eine Ausgabe erzeugen:

#include <stdio.h> int main(){ //\ printf("asdf"); return 0; }