Hello World!

Das erste Programm ist wohl das Bekannteste: Hello World.c

Also einmal zum mittippen:

#include "stdio.h"
 
int main(void)
{
  printf("Hello World!\n");
 
  return 0;
}

Was passiert?

#include "stdio.h"

Mittels '#include' kopiert der Präprozessor die genannte Datei (hier 'stdio.h') an diese Stelle des Programms in den Text hinein. Wenn die genannte Datei zwischen <> (Bsp: #include <stdio.h>) steht, wird im include-Verzeichnis nach der Datei gesucht. Verwendet man jedoch „“ (Bsp: #include „stdio.h“) wird zuerst im aktuellen Verzeichnis des Quellprogrammes und danach erst im include-Verzeichnis danach gesucht.
Alle Headerdateien enden in C mit '.h'. - sollten sie zumindest. In diesen Headerdateien befinden sich Hinweise auf (in diesem Fall vorkompilierte) Funktionen, sodass man diese nicht mehr selbst schreiben muss. Diese Funktionen erweitern die 31 Standard-C-Befehle. Selbstgeschriebene Funktionen können so ebenfalls immer wieder einfach dazukompiliert werden.

int main(void)

Mit dieser Zeile beginnt das Hauptprogramm. Es wird eine Funktion mit dem Namen 'main' angelegt. Diese Funktion (mit Namen `main`) wird grundsätzlich als erstes ausgeführt (Nicht die Funktion, die als erstes im Sourcecode auftaucht!). 'int' bedeutet, dass die Funktion einen Wert vom Typ Integer (= Ganzzahl) zurückliefert. Das Wort 'void' (engl. nichts) zwischen den runden Klammern bedeutet, dass keine Parameter übergeben werden, die Funktion bekommt keine Eingaben. Was das genau bedeutet, wird in den nächsten Kapiteln noch ausführlich beschrieben.

{

Da eine Funktion in der Regel einige Befehle besitzt, muss man dem Compiler mitteilen, wo die Funktion beginnt und wo sie endet. Dazu benutzt man die geschweiften Klammern, die aus mehreren Befehlen gewissermaßen ein Paket aus Befehlen schnürt. Man spricht von einem Anweisungsblock.

  printf("Hello World!\n");

printf ist kein C Schlüsselwort. Dieser Befehl wird dem C-Compiler in der Datei 'stdio.h' erklärt, die in der ersten Zeile eingeladen wird. Er druckt den angegebenen Text in die Console/Shell, von der aus das Programm gestartet wurde. Der Text ist ein Parameter, eine Eingabe an die Funktion printf().

Verschiedene Sonderzeichen können mit der Tastatur nicht geschrieben werden. Eines davon ist zum Beispiel das Zeichen, dass den Computer dazu bewegt, in die nächste Zeile zu gehen und den Cursor an den Anfang der Zeile zu setzten. Üblicherweise drückt man dafür die Return-Taste. Da dies in einem Editor zu Missverständnissen führt (der Editor geht eben in die nächste Zeile, setzt aber kein Zeichen dafür), muss man den Sprung in die nächste Zeile anders formulieren. Daher hat man den Backslash ('\') als Sonderzeichen definiert. Findet sich in AnsiC befindet ein 'n' dahinter, so wird der C-Compiler beide Zeichen durch das gewünschte Returnzeichen ersetzen. Um einen Backslash zu erhalten, gibt man zwei Backslashs ein ('\\'). Weitergehendes zu dieser Funktion findet man im Kapitel zu Die Funktion printf().

  return 0;

Mit der return-Anweisung wird ein Wert (in diesem Fall 0) an die rufende Funktion zurückgeliefert. Wird diese Anweisung erreicht, wird sofort abgebrochen und die Programmausführung fährt in der rufenden Funktion fort. Daher kann mit der return-Anweisung nur ein Wert zurückgeliefert werden.

}

Das Hauptprogramm wird beendet, der Anweisungsblock endet mit der geschweiften Klammer. An diesem Punkt wird das Programm dann auch beendet, da die Befehle in der Prozedur `main` alle abgearbeitet sind. Soweit, so gut. Ein Hauptprogramm haben wir also, wenn es aber ein Hauptprogramm gibt, muß es auch Unterprogramme geben. Klar, gibt es. Diese werden Funktionen genannt, auch das Hauptprogramm ist eine Funktion, die den Namen `main` trägt.