D-Programmierung: Kommentare

Aus Wikibooks

Kommentare[Bearbeiten]

Das einzige Programm, das Sie bisher geschrieben haben, war sehr einfach. Später, wenn Sie irgendwelche komplizierten Algorithmen implementieren, werden Sie nach ein paar Jahren mit hoher Wahrscheinlichkeit vergessen was genau Sie da gemacht haben. Natürlich werden Sie die Anordnung der Befehle nach mehrmaligem Durchlesen wieder verstehen. Nur mit Anmerkungen in menschlicher Sprache werden Sie aber in der Lage sein den Zweck sofort zu begreifen. Das setzt selbstverständlich auch voraus, dass die Anmerkungen auch verständlich sind.

Arten von Kommentaren[Bearbeiten]

Sie, als einem angehenden D-Programmierer, stehen genau drei Arten von Kommentaren zur Verfügung. Zunächst gibt es Einzeiler:

// Begrüße alle
writefln("Hallo ihr da draußen.");

Sie werden mit // eingeleitet. Danach kannst Du schreiben wonach Du lustig bist. Der Text geht aber nur bis zum Ende der Zeile.

Das Kommentar muss aber nicht unbedingt in einer neuen Zeile anfangen. Nach einer Anweisung geht das auch:

writefln("Hallo ihr da draußen"); // Begrüße alle

Trennst Du die Anweisung über mehrere Zeilen, dann ist auch so etwas möglich:

writefln // Begrüße alle
("Hallo ihr da draußen");

Die anderen zwei Arten sind mehrzeilige Kommentare.

/* Die untere Zeile ist nicht wahr.
Die obere Zeile ist wahr.
*/

Dieser Kommentar wird mit einem /* begonnen und alles bis zum */ wird vom Kompiler ignoriert. Die zweite Methode, wie Du mehrzeilige Kommentare schreiben kannst ist /+ Inhalt +/. Doch worin liegt wohl der Unterschied? Außer im Stern und dem Plus. Ich verdeutliche das an einem Beispiel.

/* Hier /* da */ und jetzt */
/+ Das /+ dies +/ nicht jetzt +/

Schreiben Sie das in einen Quelltext und versuchen Sie es zu kompilieren. Beim ersteren Typen sollte der Kompiler lauter Fehler melden. Woran liegt das? In beiden Zeilen versuchen wir ein Kommentar innerhalb eines anderen unterzubringen. Beim ersteren Typen funktioniert das nicht, beim zweiten hingegen läuft alles reibungslos. Das ist auch der einzige Unterschied. Die /+ +/ Kommentare kann man schachteln, /* */ aber nicht.

Der Vorteil der schachtelbaren Kommentare liegt auf der Hand. Wenn Sie einen größeren Code-Abschnitt mal zu Testzwecken auskommentiert haben wollen, so benutzten Sie diese Art.

Wie kommentieren?[Bearbeiten]

Nicht jeder Kommentar ist sinnvoll. Nur wenn etwas unverständlich sein kann, sollte auch kommentiert werden. Programmiere aber am besten so, dass alles aus sich heraus ersichtlich wird.

Unsinn ist es zum Beispiel, wenn man die Anweisungen nochmals im Kommentar in Worten umschreibt. Was da genau passiert, sollte am Algorithmus erkennbar sein.

Wenn Du noch etwas erledigen willst, dann kannst Du sogenannte TODO-Kommentare setzten. Es gibt viele Editoren und IDEs, die das entsprechend filtern und übersichtlich in einer Tabelle anzeigen können. So werden diese Kommentare benutzt:

// TODO: Da ist noch was zu tun.
/* TODO: Ich muss 
noch was erledigen. */
/+ TODO: nur noch eine Kleinigkeit +/

Also immer zuerst die Anweisung, dass ein Kommentar anfängt, dann Leerzeichen, gefolgt vom Wort TODO, danach ein Doppelpunkt, und schließlich den Text.

Anstatt TODO kannst Du auch noch andere Anmerkungen benutzen. So bedeutet NOTE einfach eine Anmerkung. BUG heißt dass der Quelltext fehlerhaft ist. DONE wird meistens für einen erledigten TODO-Eintrag verwendet. Was aber wichtig ist, diese Kommentare sind nicht für den Kompiler gedacht. Alle Kommentare, ohne Ausnahme, werden vom Kompiler ignoriert. Sie dienen lediglich der Übersichtlichkeit und wie gesagt manche Programme können da bestimmte Filter haben.

Tricks[Bearbeiten]

Sie haben einen großen Abschnitt auskommentiert.

/*
Anweisungen;
Anweisungen;
Anweisungen;
Anweisungen;
Anweisungen; */

Jetzt wollen Sie das Kommentar wieder entfernen. Um den Block wieder zu testen. Dazu müssen Sie dann sowohl /* als auch */ entfernen. Wollen Sie später die Kommentare wieder an der selben Stelle setzten so müssen Sie den Quelltext von neuem an zwei Stellen bearbeiten.

Das lässt sich jedoch vereinfachen.

Trick Nummer 1[Bearbeiten]

/* Das ist auskommentiert
Anweisungen;
Anweisungen;
Anweisungen;
Anweisungen;
Anweisungen; /**/

Schreiben Sie am Ende /**/ das funktioniert, weil diese Art sich nicht verschachteln lässt. So könne Sie, wenn das Kommentar wieder entfernt werden soll, vor dem /* ein / schreiben. Also so werden die Anweisungen für den Kompiler wieder sichtbar.

//* Das ist ein Einzeiler 
Anweisungen;
Anweisungen;
Anweisungen;
Anweisungen;
Anweisungen; /**/

Es geht noch besser[Bearbeiten]

Schachtelbare Kommentare lassen sich dadurch aber nicht umschalten. Dazu musst Du den ersten Trick etwas verändern:

/+ Auskommentiert
Anweisungen;
Anweisungen;
Anweisungen;
Anweisungen;
Anweisungen; // +/

// +/ heißt, dass es zu einem Einzeiler wird, wenn das /+ +/-Kommentar aktiv ist.

Deaktivieren lässt es sich wieder auf diese Weise

//+ Auskommentiert
Anweisungen;
Anweisungen;
Anweisungen;
Anweisungen;
Anweisungen; // +/

Mit diesen Hilfsmitteln muss man den Quelltext an nur einer Stelle anpassen.

Dokumentation[Bearbeiten]

Des Weiteren können Sie auch noch eine Dokumentation zu deinem Programm erstellen. Es gibt dann wieder entsprechende Tools, die daraus dann Hilfe- bzw. Referenz-Dokumentationen erstellen. Der D-Compiler hat so eine Funktion eingebaut.

Wie das ganze genau funktioniert erkläre ich erst viel später, da Sie da noch einiges davor an Programmieren lernen sollten. Und ihre Programme werden am Anfang höchstwahrscheinlich gar nicht so groß sein, dass Sie unbedingt eine Dokumentation brauchen werden nur um den Überblick zu behalten.