C ist eine kompilierte, imperative Sprache mit sehr wenigen Sprachmitteln und direktem Zugriff auf den Speicher. Es gibt keinen Garbage Collector, keine Klassen und keine Ausnahmen. Du bist selbst für Speicher und Fehlerbehandlung verantwortlich. Dafür bekommst du maximale Kontrolle und Geschwindigkeit.
Wo wird C eingesetzt?
| Bereich | Beispiele |
|---|---|
| Betriebssysteme | Linux-Kernel, Windows-Kern, macOS/BSD |
| Eingebettete Systeme | Mikrocontroller (Arduino-Kern), Fahrzeug-Steuergeräte, Router |
| Sprachen und Werkzeuge | CPython, PHP, Ruby, Git, Compiler |
| Datenbanken und Server | PostgreSQL, Redis, SQLite, nginx |
| Spiele und Grafik | Engines, Treiber, Bibliotheken |
Wie wird aus C-Code ein Programm?
- Präprozessor: verarbeitet
#includeund#define - Compiler: übersetzt jede
.c-Datei in Assembler und dann in Objektcode (.o) - Linker: verbindet Objektdateien und Bibliotheken zur ausführbaren Datei
gcc -Wall -Wextra -std=c17 -o hallo hallo.c
./halloImmer mit -Wall -Wextra übersetzen: Der Compiler warnt dann vor vielen typischen Fehlern. Das Ergebnis ist Maschinencode für dein System, nicht übertragbar auf andere Betriebssysteme oder Prozessoren.
Dein erstes Programm
#include <stdio.h>
int main(void) {
printf("Hallo, Welt!\n");
return 0;
}Hallo, Welt!
#include <stdio.h>bindet die Standardbibliothek für Ein- und Ausgabe einint main(void)ist der Startpunkt; der Rückgabewert0heißt "erfolgreich"printfgibt Text aus;\nist der Zeilenumbruch- Anweisungen enden mit
;, Blöcke stehen in{ }
C im Vergleich
| C | Python | Java | Rust | |
|---|---|---|---|---|
| Speicher | manuell | automatisch | automatisch (GC) | geprüft zur Compilezeit |
| Geschwindigkeit | sehr hoch | langsam | hoch | sehr hoch |
| Sicherheit | gering (du trägst die Verantwortung) | hoch | hoch | sehr hoch |
| Einstieg | schwerer | leicht | mittel | schwer |
Standards
C wurde mehrfach standardisiert: C89/C90, C99, C11, C17, C23. Dieser Kurs nutzt C17 (-std=c17), die meisten Beispiele laufen auch mit C99 und C11.
So führst du den Code aus: Datei hallo.c speichern, mit gcc -Wall -Wextra -std=c17 hallo.c -o hallo übersetzen und mit ./hallo starten (Windows: hallo.exe). Auf Linux und macOS ist gcc oder clang meist vorhanden, unter Windows hilft MinGW oder WSL.
Merke
- C ist kompiliert, schnell und hardwarenah, ohne Garbage Collector
- Präprozessor → Compiler → Linker erzeugen das Programm
- Immer mit
-Wall -Wextraübersetzen - Startpunkt ist
int main(void);return 0heißt Erfolg - Du bist für Speicher und Sicherheit selbst verantwortlich