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
#includeEinbinden von Dateien
#defineDefinition eines Makros
#undefDefinitionen verwerfen
#errorCompiler-Fehler ausgeben
#warningCompiler-Warnung ausgeben
Bedingte Compilierung
#ifBedingte Compilierung
#elseElse-Teil der bedingten Compilierung
#elifFolge-Bedingung der bedingten Compilierung
#endifAbschluss einer bedingten Compilierung
#ifdefBedingte Compilierung aufgrund einer Definition
#ifndefBedingte Compilierung aufgrund einer fehlenden Definition
definedPrüft auf Existenz eines Makros
Zusätzliche Preprozessor-Definitionen
 Vordefinierte Makros
 Einmaliges Einbinden von Dateien
Stringifizierung #Parameter als String
Konkatenation ##Konkatenation
\ am Ende der ZeileZusammenfügen mehrerer Zeilen
Auslassungspunkte ...Auslassungspunkte für Makros mit Parameter variabler Länge

Weiteres

Folgende Direktiven sind hier zwar aufgeführt, es wird jedoch vom Gebrauch abgeraten, da sie teils veraltet, und häufig nicht standartisiert sind.

Nicht zu empfehlende Direktiven
#lineZeilennummern-Kontrolle
#importEinmalige Einbindung von Dateien
Null-Direktive #Null-Direktive
#include_nextEinbinden von Dateien nicht aus dem ersten Verzeichnis
#assertDefinieren von Prädikaten
#unassertInvalidierung von Prädikaten
#pragmaCompiler-Kontrolle
#identIdentifikations-Direktive
#sccsBSD-spezifische Direktive