D-Programmierung: Kommentare

Aus Wikibooks

Wechseln zu: Navigation, Suche
Nuvola apps bookcase 1.svg D-Programmierung Nuvola mimetypes dvi.png Kommentare

Inhaltsverzeichnis


[Bearbeiten] Kommentare

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

[Bearbeiten] Arten von Kommentaren

Dir, als einem angehenden D-Programmierer, stehen genau drei Arten von Kommentaren. 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 +/

Schreibe das in einen Quelltext und versuche 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 Du einen größeren Code-Abschnitt mal zu Testzwecken auskommentiert haben willst, so benutzt Du diese Art.

[Bearbeiten] Wie kommentieren?

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.

[Bearbeiten] Tricks

Du hast einen großen Abschnitt auskommentiert.

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

Jetzt willst Du das Kommentar wieder entfernen. Um den Block wieder zu testen. Dazu musst Du dann sowohl /* als auch */ entfernen. Willst Du später die Kommentare wieder an der selben Stelle setzten so musst Du den Quelltext von neuem an zwei Stellen bearbeiten.

Das lässt sich jedoch vereinfachen.

[Bearbeiten] Trick Nummer 1

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

Schreibe am Ende /**/ das funktioniert, weil diese Art sich nicht verschachteln lässt. So kannst Du, 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; /**/

[Bearbeiten] Es geht noch besser

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.

[Bearbeiten] Dokumentation

Desweiteren kannst Du 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 Du da noch einiges davor an Programmieren lernen solltest. Und deine Programme werden am Anfang höchstwahrscheinlich gar nicht so groß sein, dass Du unbedingt eine Dokumentation brauchen wirst nur um den Überblick zu behalten.

Nuvola apps bookcase 1.svg D-Programmierung Nuvola mimetypes dvi.png Kommentare
Persönliche Werkzeuge