Preprozessor

Der Preprozessor (oder Präprozessor) hat die Aufgabe, sich vor der eigentlichen Kompilation durch die zu kompilierenden Dateien durchzuarbeiten und sogenannte Direktiven umzusetzen. Diese Direktiven dienen hauptsächlich dazu, externe Dateien einzubinden, Makros zu definieren, sowie bedingte Compilierung und Fehlermeldungen zu steuern.

Die wichtigsten Direktiven

#include Einbinden von Dateien
#define Definition eines Makros
#undef Definitionen verwerfen
#error Compiler-Fehler ausgeben
#warning Compiler-Warnung ausgeben

Bedingte Compilierung

#if Bedingte Compilierung
#else Else-Teil der bedingten Compilierung
#elif Folge-Bedingung der bedingten Compilierung
#endif Abschluss einer bedingten Compilierung
#ifdef Bedingte Compilierung bei existierendem Makro
#ifndef Bedingte Compilierung Bei fehlendem Makro
defined Prüft auf Existenz eines Makros

Weitere Preprozessor-Angaben

Compilermakros Vordefinierte Makros
Single #include Einmaliges Einbinden von Dateien
Stringifizierung # Argument als String in doppelten Anführungszeichen " "
Buchstabisierung #@ Argument als Character in einfachen Anführungszeichen ' '
Konkatenation ## Konkatenation
\ am Ende der Zeile Zusammenfügen mehrerer Zeilen
Makro-Parameter ... Variadische Makros

Seltene Direktiven

Folgende Direktiven sind der Vollständigkeit halber aufgeführt, für die normale Programmierung werden sie jedoch nicht benötigt. Da sie teils veraltet und häufig nicht standartisiert sind, wird ausserdem vom Gebrauch ABGERATEN, es sei denn, man weiss, was man tut.

#line Zeilennummern-Kontrolle
#import Einmalige Einbindung von Dateien
Null-Direktive # Null-Direktive
#include_next Einbinden von Dateien nicht aus dem ersten Verzeichnis
#assert Definieren von Prädikaten
#unassert Invalidierung von Prädikaten
#pragma Compiler-Kontrolle
#ident Identifikations-Direktive
#sccs BSD-spezifische Direktive