Aufbau eines C-Programms
Jedes C-Programm hat dasselbe Grundgerüst. Die Datei heißt z. B. hallo.c.
#include <stdio.h> // Bibliothek für Ein- und Ausgabe int main(void) { // hier startet das Programm printf("Hallo, Welt!\n"); // Text ausgeben, \n = neue Zeile return 0; // 0 = alles in Ordnung }
- #include:
#include <stdio.h>bindet eine Bibliothek ein — hier fürprintf. - main:Startpunkt: Das Programm beginnt immer in
int main(void). - Block:Geschweifte Klammern
{ }fassen Anweisungen zusammen. - Semikolon:Jede Anweisung endet mit
;— Einrückung ist nur für Menschen. - return 0:meldet dem Betriebssystem: Programm fehlerfrei beendet.
- Kommentar:
// …bis Zeilenende oder/* … */über mehrere Zeilen.
Übersetzen in drei Stationen
Der Computer versteht nur Maschinencode. Der Befehl gcc hallo.c -o hallo übersetzt den Quelltext in drei Stationen:
- Präprozessor:führt die
#-Zeilen aus: fügt z. B. den Inhalt vonstdio.hein. - Compiler:prüft die Syntax und übersetzt in Maschinencode (Objektdatei
hallo.o). - Linker:fügt fertige Bibliotheksfunktionen wie
printfhinzu → ausführbare Dateihallo. - Starten:
./halloführt das Programm aus — ohne erneutes Übersetzen. - Nach Änderungen:Quelltext geändert? Dann neu übersetzen, sonst läuft die alte Version.
- Unterschied zu Python:Python übersetzt beim Ausführen Zeile für Zeile (Interpreter); C übersetzt vorab alles auf einmal.
$ gcc hallo.c -o hallo $ ./hallo Hallo, Welt!
Schicke einen Quelltext durch die Übersetzungsstraße: Wähle oben eine Variante, dann ▶ für den ganzen Weg oder Schritt für eine Station. Beobachte, an welcher Station ein Fehler auffällt.
Halte fest: Der Compiler prüft das ganze Programm, bevor es startet. Jeder Fehler hält die Straße an einer bestimmten Station an — ein ausführbares Programm entsteht nur, wenn alle drei Stationen fehlerfrei durchlaufen werden.
Übersetzen: Quelltext (.c) → Präprozessor → Compiler → Linker → ausführbares Programm. Befehl: gcc datei.c -o name, Start mit ./name.
Allgemeine Hinweise
Fehlermeldungen von oben lesen
Ein fehlendes ; kann Folgefehler auslösen. Korrigiere immer zuerst die erste Meldung und übersetze neu.
Zeilennummer kann danebenliegen
Bei expected ';' before 'return' fehlt das Semikolon am Ende der Zeile davor.
Warnungen einschalten
Mit gcc -Wall hallo.c -o hallo meldet der Compiler auch verdächtige Stellen, die noch kein Fehler sind.
