2.3. Ein einfaches Programm
Zum Einstieg in die Programmierpraxis wollen wir uns ein kleines Programm ansehen, das als "Hello world"-Programm einschlägige Berühmtheit erlangt hat und das mittlerweile als Beispiel für die ersten Schritte in allen möglichen Programmiersprachen dient.
/***************************************************
* Dieses Programm gibt "Hello world" aus *
* *
*************************************************/
#include <stdio.h>
int main(void){
printf("Hello world\n");
return 0;
}
Das Programm beginnt mit einem Kommentar. Kommentare werden durch die Zeichenfolge /* eingeleitet und enden mit */. Der Kasten aus Asterisken, der den Kommentar umgibt, dient der Übersichtlichkeit und wird vom Compiler genauso ignoriert wie alles andere, was sich zwischen /* und */ befindet.
Die auf den Kommentar folgende Zeile zeigt an, daß wir Funktionen für die Ein-/Ausgabe verwenden wollen (Ein-/Ausgabe wird oft mit E/A abgekürzt oder in Bezug auf die englischen Termini Input/Output mit I/O). Genau genommen handelt es sich bei der #include-Anweisung um eine Art der Deklaration; technisch gesehen wird der Preprozessor angewiesen, die Header-Datei stdio.h einzufügen.
Unser Programm definiert eine einzige Funktion, nämlich main(). Sie heißt so, weil sie die Hauptfunktion eines jeden C-Programms ist und als erste aufgerufen wird. Das Schlüsselwort int vor dem Namen der Funktion gibt Auskunft über den Datentyp ihres Rückgabewerts. Die Klammern nach dem Funktionsnamen umschließen die Liste der Argumente, die der Funktion übergeben werden. In unserem Beispiel nimmt die Funktion main() keine Argumente. Während Kernighan und Ritchie für diesen Fall ursprünglich nur leere Klammern vorsahen, wird bei ANSI-C das Schlüsselwort void benutzt. Die anschließende geschweifte Klammer markiert in C den Beginn eines Programmblocks, der durch eine schließende geschweifte Klammer beendet wird.
Die Blockstruktur macht es möglich, eine Reihe von zusammengehörigen Anweisung zusammenzufassen; der Körper einer Funktion muß immer von geschweiften Klammern umgeben sein.
Innerhalb der Funktion main() stehen nur zwei Anweisungen: Der Aufruf der Funktion printf() mit dem Argument "Hello world\n" sorgt für die Ausgabe der genannten Zeichenkette auf dem Standard-Ausgabegerät (in der Regel der Bildschirm). Der Funktionsaufruf in unserem Beispiel endet wie jede Anweisung in C mit einem Semikolon (;). printf() ist eine Funktion zur formatierten Ausgabe (print formatted) und gehört zum Lieferumfang der C-Standardbibliotheken. In diesem Fall gibt es für printf() nichts zu formatieren, da nur "Hello world" an der Cursorposition ausgegeben werden muß; printf() ist aber, wie sich in Kapitel 5 herausstellen wird, eine mächtige Funktion, die eine Vielzahl von Aufgaben erledigen kann.
Das abschließende return 0 bewirkt die Rückkehr des Programmablaufs zur aufrufenden Funktion, bei main() ist dies üblicherweise das Betriebssystem. Ihr wird in unserem Beispiel der Wert 0 zurückgegeben. Nähere Informationen zu Rückgabewerten, Funktionsargumenten und return finden Sie in Kapitel 10 "Funktionen".