Kommentare // /* */

In den Sprachen C und C++ kann Sourcecode mit einzeiligen und geklammerten Kommentaren versehen sein. 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 zum Verständnis des Sourcecodes 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;
}
Nächstes Kapitel: Compiler und Linker