Freigeben über


Präprozessordirektiven

Präprozessordirektiven wie #define und #ifdef werden in der Regel verwendet, um das Ändern und Kompilieren von Quellprogrammen in verschiedenen Ausführungsumgebungen zu vereinfachen. Direktiven in der Quelldatei weisen den Präprozessor an, bestimmte Aktionen auszuführen. Beispielsweise kann der Präprozessor Token im Text ersetzen, den Inhalt von anderen Dateien in die Quelldatei einfügen oder die Kompilierung eines Teils der Datei unterdrücken, indem er Textabschnitte entfernt. Präprozessorzeilen werden vor der Makroerweiterung erkannt und ausgeführt. Wenn also die Erweiterung eines Makros aussieht wie ein Präprozessorbefehl, wird dieser Befehl nicht vom Präprozessor erkannt.

Präprozessoranweisungen verwenden den gleichen Zeichensatz wie Quelldateianweisungen, mit der Ausnahme, dass Escapesequenzen nicht unterstützt werden. Der Zeichensatz, der in Präprozessoranweisungen verwendet wird, ist mit dem Ausführungszeichensatz identisch. Der Präprozessor erkennt auch negative Zeichenwerte.

Der Präprozessor erkennt die folgenden Direktiven:

#define

#error

#import

#undef

#elif

#if

#include

#using

#else

#ifdef

#line

#endif

#ifndef

#pragma

 

Das Nummernzeichen (#) muss das erste Zeichen ohne Leerstelle in der Zeile sein, die die Direktive enthält. Leerzeichen können zwischen dem Nummernzeichen und dem ersten Buchstaben der Direktive gesetzt werden. Manche Direktiven enthalten Argumente oder Werte. Jeglichem Text, der auf eine Direktive folgt (außer einem Argument oder einem Wert, der Teil der Direktive ist), muss das einzeilige Kommentartrennzeichen (//) vorangestellt sein, oder er muss in Kommentartrennzeichen (/* */) eingeschlossen werden. Zeilen, die Präprozessordirektiven enthalten, können fortgesetzt werden, indem direkt vor den Zeilenendemarker ein umgekehrter Schrägstrich (\) gesetzt wird.

Präprozessordirektiven können an beliebiger Stelle in einer Quelldatei auftreten, aber sie gelten nur für den Rest der Quelldatei.

Siehe auch

Referenz

Präprozessoroperatoren

Vordefinierte Makros

Weitere Ressourcen

C/C++-Präprozessorreferenz