Veröffentlicht · wird verbessert
Programming language · Seit 1972
C ist eine kompakte, portable Systemprogrammiersprache, die zu schnellem Maschinencode kompiliert und direkte Kontrolle über Speicher und Hardware gibt.
C ist eine prozedurale Allzweck-Programmiersprache, die Dennis Ritchie an den Bell Labs entwarf, um das Betriebssystem Unix zu schreiben. Später wurde sie von ANSI und ISO standardisiert; heute pflegt das Gremium ISO/IEC JTC1/SC22/WG14 den Standard, und Fassungen wie C99, C11 und C17 sind weit verbreitet. Die Sprache kommt mit wenigen Schlüsselwörtern aus und besteht aus einfachen Bausteinen – Funktionen, Strukturen und Zeigern –, die der Compiler direkt in Maschinencode übersetzt.
Ihre Stärken spielt C dort aus, wo vorhersehbare Leistung, kleine Programmdateien und direkte Kontrolle über den Speicher zählen: in Betriebssystemkernen, Gerätetreibern, Mikrocontroller-Firmware, Laufzeitumgebungen anderer Sprachen und Datenbanken. Für nahezu jede Plattform gibt es einen C-Compiler, und die Aufrufkonvention von C (ABI) ist die gemeinsame Schnittstelle, über die andere Sprachen fremde Bibliotheken ansprechen. Der Preis dafür: C prüft weder Array-Grenzen, noch verwaltet es Speicher automatisch – Pufferüberläufe und Zugriffe auf bereits freigegebenen Speicher zu vermeiden, liegt in Ihrer Verantwortung.
Für den Einstieg installieren Sie GCC, Clang oder MSVC und kompilieren kleine Programme im Terminal. Üblich ist die Reihenfolge Variablen und Datentypen, Kontrollstrukturen, Funktionen, Arrays und Zeichenketten, Zeiger, Strukturen und schließlich dynamischer Speicher. Schalten Sie Warnungen mit -Wall -Wextra ein, schlagen Sie die Standardbibliothek auf cppreference nach und gewöhnen Sie sich an, Speicherfehler mit AddressSanitizer und GDB aufzuspüren.
Zeiger erlauben den direkten Zugriff auf Speicheradressen, und mit malloc und free verwalten Sie Speicher selbst – so bestimmen Sie genau, wie Daten angeordnet und Ressourcen genutzt werden.
Die Sprache ist kompakt und durch einen ISO-Standard definiert; standardkonformer Code lässt sich für viele Betriebssysteme und Prozessoren neu übersetzen.
C wird zu nativem Maschinencode kompiliert und braucht kaum Laufzeitunterstützung – sogar Firmware und Bootloader ohne Betriebssystem lassen sich damit schreiben.
Die C-Funktionsschnittstelle dient als De-facto-Standard-ABI, sodass Sprachen wie Python, Rust und Go C-Bibliotheken direkt über ihr FFI aufrufen können.
Unter Debian oder Ubuntu installieren Sie GCC und Make mit dem folgenden Befehl (unter Fedora mit sudo dnf install gcc make). Unter macOS liefert xcode-select --install die Xcode Command Line Tools samt Clang. Unter Windows installieren Sie MSYS2 und führen in der UCRT64-Shell pacman -S mingw-w64-ucrt-x86_64-gcc aus, oder Sie installieren die Visual Studio Build Tools mit der Workload „Desktopentwicklung mit C++“.
sudo apt install build-essentialÖffnen Sie ein neues Terminal und prüfen Sie, ob der Compiler seine Version ausgibt. Unter macOS verweist der Befehl gcc auf Apple Clang, daher erscheint eine Clang-Version. Mit MSVC rufen Sie stattdessen cl in der Developer Command Prompt auf.
gcc --versionSpeichern Sie das erste Programm als hello.c, kompilieren Sie es mit aktivierten Warnungen nach dem C17-Standard und starten Sie es. Mit MSVC kompilieren Sie mit cl /W4 hello.c und starten hello.exe.
gcc -Wall -Wextra -std=c17 hello.c -o hello && ./hello#include <stdio.h> bindet den Header für die Standard-Ein- und -Ausgabe ein, in dem printf deklariert ist. Die Funktion main ist der Einstiegspunkt des Programms; (void) bedeutet, dass sie keine Argumente erwartet. printf gibt den Text aus, \n steht für einen Zeilenumbruch. return 0 meldet dem Betriebssystem ein erfolgreiches Ende. gcc übersetzt den Quelltext in die ausführbare Datei hello, und ./hello startet sie.
hello.c
#include <stdio.h>
int main(void) {
printf("Hello, world!\n");
return 0;
}
gcc hello.c -o hello && ./helloSechs Kapitel führen dich von der Installation bis zu den Kernkonzepten von C.
Stelle Fragen, teile Erfahrungen und tausche Meinungen zu C aus.
Noch keine Diskussionen. Starte die erste.
0 Kommentare
Anmelden · Melde dich an, um einen Kommentar zu schreiben.
Schreib den ersten Kommentar.