Turbo Pascal, Delphi
Es besteht die Möglichkeit Symbole zu definieren, mit deren Hilfe
der Übersetzungsprozeß gesteuert werden kann.
Die Symbole sind gültig für die jeweilige Quelltextdatei.
Die Anweisungen, mit denen die Symbole definiert und ausgewertet werden
können, sind aus der Sicht des Pascal-Standards Kommentare.
{$IFDEF Debug}
Writeln('X = ', X);
{$ENDIF}
Beispiel 2:
{$IFDEF CPU87}
{$N+}
TYPE Real = Double;
{$ELSE}
{$N-}
TYPE Single = Real;
Double = Real;
Extended = Real;
Comp = Real;
{$ENDIF}
Beispiel 3:
{$IFDEF WINDOWS}
USES WinCrt;
{$ENDIF}
Delphi 1.0 besitzt einige vordefinierte Symbole:
VER80 Versionsnummer des Compilers (8.0) WINDOWS Betriebssystem-Umgebung ist MS-Windows CPU86 Rechner besitzt CPU aus der intel 80x86 Familie CPU87 Definiert, wenn der numerische Koprozessor 80x87 vorhanden istIn Delphi 2.0 gibt es diese Symbole:
VER90 Versionsnummer des Compilers (9.0) WIN32 Betriebssystem-Umgebung ist Win32 CONSOLE Anwendung nutzt die Konsole CPU386 Rechner besitzt CPU intel 80386 oder besserTurbo Pascal 6.0/7.0 besitzt analog die folgenden vordefinierten Symbole:
VER60 Versionsnummer des Compilers (6.0) VER70 Versionsnummer des Compilers (7.0) MSDOS Betriebssystem-Umgebung ist MS-DOS CPU86 Rechner besitzt CPU aus der intel 80x86 Familie CPU87 Definiert, wenn der numerische Koprozessor 80x87 vorhanden istÄhnliches gilt für andere Versionen von Borland's Pascal.
Im Vergleich zum C-Precompiler sind die Möglichkeiten weitaus begrenzter.
Gnu Pascal
Verwendung der bei C üblichen Preprozessor-Anweisungen
Definition eines Symbols
#define symbol
Löschen einer Symboldefinition
#undef symbol
Bedingte Compilation, wenn Symbol definiert ist
#ifdef symbol
Pascal-Anweisungen { übersetzt, wenn symbol definiert }
#else
Pascal-Anweisungen { übersetzt, wenn symbol nicht def. }
#endif
Bedingte Compilation, wenn Symbol nicht definiert ist
#ifndef symbol
Pascal-Anweisungen { übersetzt, wenn symbol nicht def. }
#else
Pascal-Anweisungen { übersetzt, wenn symbol definiert }
#endif
Auch die in Turbo Pascal übliche Syntax kann verwendet werden.