Hello World in C – Hallo Welt in C schreiben
Im folgenden Beispiel erklären wir die unterschiedlichen Teile eines Programms anhand eines "Hello World"-Szenarios.
/* Hello World in C*/ /* header file / Informationsdatei */ #include <stdio.h> /* Hauptprogramm */ int main() /* Funktionskopf */ {/* Blockbeginn */ puts("\nHello World!\n");/* Funktionsaufruf */ return 0;/* Ende mit Rückgabewert */ }/* Blockende */
Kommentare in C Quelltexten
Die ersten Zeilen im Quelltext sind Kommentare. Kommentare sind wichtig. Wie wichtig Kommentare sind, merkt man oft erst Jahre später, wenn man ein Programm überarbeiten soll. Daher sollten Kommentare den Sinn eines Programmes beschreiben, nicht den aktuellen Vorgang.Ein Kommentar wird durch "/*" eingeleitet und durch "*/" abgeschlossen. Er kann mehrere Zeilen lang sein. Kommentare dürfen nicht verschachtelt werden, das heißt in einem Kommentar darf kein weiterer stehen.
Programmierer, die zu Testzwecken ein paar Zeilen auskommentieren möchten, finden eine Lösung unter "#if" (bedingte Übersetzung) im Index. Der Kommentar im Beispiel ist wesentlich kürzer als im Normalfall. Er dient hauptsächlich als Beispiel und um den Namen der Datei anzugeben.
Einige neuere Compiler erlauben auch ein anderes Kommentarzeichen, welches nicht zu C gehört. Im Vorgriff auf die Weiterentwicklung zu C++ erlaubt zum Beispiel TurboC++ auch in C den einzeiligen Kommentar, der mit "//"eingeleitet wird und bis zum Zeilenende gilt.
Einlesen von Informationsdateien
Die erste Anweisung heißt "#include". Mit dieser Anweisung geben wir an, dass während der Übersetzungszeit genau an dieser Stelle eine andere Datei eingelesen werden soll. Wenn der Compiler an diese Stelle kommt, dann stellt er die Bearbeitung der Datei zurück und liest und übersetzt zuerst die angegebene Datei mit dem Namen "stdio.h". Danach fährt er mit der Übersetzung unserer Programmdatei fort.
Die Dateien, die man auf diese Art einliest, enthalten keine Befehle. Hier fasst man wichtige Abkürzungen und andere Informationen für den Compiler zusammen. Unsere Datei enthält Informationen zur Standard-Ein- und Ausgabe ("Standard input/output").
Das "#"-Zeichen leitet eine Anweisung für den sogenannten Präprozessor ein. Der Präprozessor ist der erste Teil des Compilers. Er übersetzt nicht, sondern kann einfache Textbearbeitungen vornehmen. Der Name der einzulesenden Datei kann entweder in spitzen Klammern ("<stdio.h>") oder in Anführungszeichen ("artikel.h") stehen. Die spitzen Klammern sagen dem Compiler, dass er diese Datei beim Compiler suchen soll. Die Anführungszeichen bedeuten, dass die Informationsdatei im gerade aktiven Verzeichnis zu finden ist.
Beginn des Hauptprogramms "Hello World"
In C stehen alle Anweisungen in Funktionen. Starten wir ein Programm, dann beginnt die Bearbeitung mit einer Funktion mit dem festgelegten Namen "main()". Jedes C-Programm muss eine Funktion mit diesem Namen haben.
Eine Funktion ist ein Programmstück, das eine bestimmte, abgegrenzte Aufgabe hat. Der Name "Funktion" stammt aus der Mathematik. Zu einer Funktion gehören immer zwei Elemente:
- eine Schnittstelle und
- ein Funktionsblock.
Die Schnittstelle zeigt uns die Kommunikationsmöglichkeit der Funktion mit seiner Umgebung. In den runden Klammern finden wir die Parameter. Dies sind die Daten, die an eine Funktion übergeben werden. In unserem ersten Beispiel blieben die Klammern bei "main()" leer.
Vor dem Namen finden wir eine Typangabe. Das Ergebnis der Funktion ist vom Typ int (integer / ganzzahlig mit Vorzeichen). Der zurückgegebene Wert einer Hauptfunktion ist ein Endestatus des Programmes. Die Rückgabe des Wertes geschieht mit der "return"-Anwei- sung.
Wenn man Kommandodateien schreibt (sie heißen auch Batch-Dateien unter DOS oder Shell-Scripten unter UNIX), dann kann man abhängig vom Endestatus eines Programmes Entscheidungen treffen.
Den zweiten Teil des Hauptprogramms bildet der Funktionsblock. Der Beginn des Blockes wird mit einer öffnenden geschweiften Klammer angezeigt, das Ende mit der schließenden Klammer. In anderen Sprachen finden wir statt der Klammern die Bezeichnungen "begin" und "end". Alle Anweisungen eines Programmes stehen innerhalb solcher Funktionsblöcke.
Unser kleines Programm gibt nur einen kurzen Text auf den Bildschirm aus. Dazu rufen wir die Funktion "puts()". Es ist in C erlaubt eine Funktion (hier: puts) aufzurufen und den Ergebniswert der Funktion nicht abzuholen. Dies geschieht in vielen Fällen, besonders aber bei Funktionen zur Ein- und Ausgabe.
Der Text, der an "puts()" übergeben wird, steht in Anführungszeichen. Damit definieren wir eine Textkonstante.
Im Text fällt Ihnen vielleicht ein rückwärts gerichteter Schrägstrich ("\") auf. Dieses Zeichen hat innerhalb von Texten eine Sonderbedeutung. Das Zeichen, das danach folgt (hier: ein "n") wird nicht als Text ausgegeben, sondern als Steuerzeichen "Neue Zeile". Das Steuerzeichen setzt den Cursor in die folgende Zeile an den Anfang.
Und auch nach dem Text fordern wir eine neue Zeile an, um den Prompt des Betriebssystems auch wieder am Anfang einer Zeile zu positionieren.Nachdem das kleine Programm seine Aufgabe erfüllt hat, können wir mit Hilfe des "return"- Befehls einen Wert zurückliefern. Da alles gut gegangen ist, meldet "return" eine "0" für "Alles OK" zurück. Die zurückgegebene Zahlenkonstante "0" ist ein "int", eine ganze Zahl (integer), so wie es in der Schnittstelle der Funktion gefordert wurde.