Kurz: 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.
Teil des Kurses C
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
hallo.c
#include <stdio.h>
int main(void) {
printf("Hallo, Welt!\n");
return 0;
}Ausgabe:
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.
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
Quiz zur Selbstkontrolle
Was erzeugt der Compiler aus C-Quellcode?
- Maschinencode für das jeweilige System (richtig)
- Bytecode für eine JVM
- HTML
- Python-Skripte
Wofür ist der Linker zuständig?
- Objektdateien und Bibliotheken zum Programm verbinden (richtig)
- Syntaxfehler suchen
- Code formatieren
- Programme starten
Was bedeutet return 0 in main?
- Das Programm war erfolgreich (richtig)
- Es gab einen Fehler
- Es wurde nichts ausgegeben
- Das Programm läuft endlos
Weiter im Kurs
Weiter: Aufbau eines C-Programms
Alle Kapitel: C im Überblick