6 Kommentare

In allen Sprachen ist natürlich eine ausführliche Kommentierung dessen, was im Quelltext so alles passiert, sehr wichtig. In C beginnen Kommentare mit der Zeichenfolge /* und enden entsprechend mit */.

Alles, was zwischen /* und */ steht, wird vom Compiler also einfach ignoriert und ist nur für dem mehr oder weniger menschlichen Leser des Quelltextes gedacht. Kommentare dürfen sich dabei auch über mehrere Programmzeilen erstrecken.

Bei mehrzeiligen Kommentaren ist es sinnvoll, den Kommentarblock als solchen optisch hervorzuheben, anstatt nur nur den Text in /* und */ einzufassen.

Mehrzeilige Kommentare werden deshalb von manchen Programmierern etwa so geschrieben:

/* Das ist ein Kommentar, der -warum auch immer- ueber  */
/* mehrere Zeilen geht.                                 */
/* Das muss aber nicht immer besser sein, als ein       */
/* kurzer Kommentar: wer liest schon so viel Text, ohne */
/* muede zu werden?                                     */

Das ist aber etwas langwierig zu tippen; besonders bei kleinen Textänderungen schreibt man sich die Finger wund. Deshalb findet man meistens diese Form:

/* Das ist ein Kommentar, der -warum auch immer- ueber
 * mehrere Zeilen geht.
 * Das muss aber nicht immer besser sein, als ein
 * kurzer Kommentar: wer liest schon so viel Text, ohne
 * muede zu werden?
 */

Bei manchen C-Compilern ist es erlaubt, innerhalb von Kommentaren wiederum ein Paar von /* und */ stehen zu haben (geschachtelter Kommentar), also eine Konstruktion wie:

   /* aeusserer Kommentar /* innerer Kommentar */ aeusserer Kommentar */
.

Andere Compiler sehen das zweite /* nicht, weil es ja im Kommentar steht und sehen beim ersten */, den Kommentar als beendet an. Damit steht der Text jkl */ schon außerhalb des Kommentars. Deshalb sollte man Kommentare nie schachteln.

Schachteln von Kommentaren könnte man --sofern der Compiler es zuläßt-- nutzen, um ,,schnell mal`` ein Programmstück auszukommentieren (in dem wiederum Kommentare enthalten sind), ohne den Quelltext dauerhaft zu löschen. In diesem Fall kann man aber mit bedingter Kompilierung (siehe Seite Der Praeprozessor) wesentlich flexibler und systemunabhängig arbeiten.

Um ein Programmstück stillzulegen, bietet sich folgende Sequenz an:

#if 0
    /* stillgelegter Teil */
    ...
#endif

Der Wert 0 ist in C als logisch falsch definiert; siehe dazu Logischer Datentyp. Auch der Praeprozessor hält sich an diese Konvention.

Hinweis: In C++ gibt es eine weitere Form von Kommentaren. Dabei wird jeglicher Text, der nach zwei direkt aufeinander folgenden Schrägstrichen steht (//), bis zum Ende der aktuellen Zeile als Kommentar betrachtet, also ignoriert.

Da es kaum noch C-Compiler gibt, die nicht auch C++ verstehen, sind auf den meisten Systemen auch in C-Programmen beide Formen von Kommentar erlaubt. Dies entspricht dann allerdings nicht mehr dem ANSI-Standard.

AnyWare@Wachtler.de