Der FoxPro-Kompatible Skriptinterpreter
🔎
Newsletter
Der FoxPro-Kompatible Skriptinterpreter

#define

Definiert ein Symbol im Präprozessor. Präprozessor-Symbole können im Quellcode zum Ersetzen von Symbolen verwendet werden.

  1
  2
#define __test "test"
__test

test

  1
  2
#define __1p2p3 1+2+3
__1p2p3

6

Vordefinierte Präprozessor-Symbole

DO definiert automatisch Präprozessor-Symbole, die immer verfügbar sind.

Symbol-Name
Inhalt
__column__
Der Offset des Symbols innerhalb der Zeile
__do__
Inhaltsloses Symbol das andeutet, dass die DO Runtime verwendet wird
__dir__
Das Verzeichnis in dem sich die Quellcodedatei befindet
__file__
Der kanonisierte Pfad der aktuellen Quellcodedatei
__line__
Die aktuelle Zeilenummer des Symbols im Quellcode-Dokument
__linux__
Deutet auf das Linux-Betriebssystem hin (Nur Linux)
__offset__
Der Offset des Symbols ausgehend vom Dateianfang
__windows__
Deutet auf das Windows-Betriebssystem hin (Nur Windows)

Verhaltensunterschiede zu FoxPro

FoxPro fügt automatisch Leerzeichen hinzu wenn mehrzeilige Präprozessor-Symbole definiert werden. In DO werden nur Leerzeichen hinzugefügt wenn diese vor dem Semikolon explizit angegeben sind.

  1
  2
  3
  4
#define _a Das Auto;
war zu schnell. && ^-- FoxPro verwandelt dieses Semikolon
                &&     in ein Leerzeichen, DO ignoriert es.
[_a]

Das Autowar zu schnell. 

# FoxPro hingegen zeigt
Das Auto war zu schnell.

Um in DO das gleiche Ergebnis zu erzielen, muss der Code wie folgt angepasst werden

  1
  2
  3
  4
#define _a Das Auto ;
war zu schnell. && ^-- Zusätzliches Leerzeichen

[_a]

Das Auto war zu schnell.