User manual
62Compiler
© 2005 Conrad Electronic
Da der Preprozessor vor dem Compiler läuft, wird bei jedem Auftauchen von
symbol
im Quelltext
symbol
durch
textkonstante
ersetzt.
Ein Beispiel
#define PI 3.141
Bedingte Kompilierung
#ifdef symbol
...
#else // optional
...
#endif
Man kann kontrollieren welche Teil eines Quelltextes wirklich kompiliert werden. Nach einer
#ifdef
symbol
Anweisung wird der folgende Text nur kompiliert wenn das
symbol
auch durch
#define
symbol
definiert wurde.
Ist eine optionale
#else
Anweisung angegeben, so wird der Quelltext nach
#else
bearbeitet wenn
das
symbol
nicht definiert ist.
Einfügen von Text
#include pfad\dateiname
Mit dieser Anweisung läßt sich eine Textdatei in den Quellcode einfügen.
Aufgrund einer Limitierung des Preprozessors darf der Pfad in einer
#include
Anweisung
keine Leerzeichen enthalten!
5.3 Bibliotheken
5.3.1 Interne Funktionen
Damit der Compiler die im Interpreter vorhandenen internen Funktionen erkennen kann, müssen
diese Funktionen in der Bibliothek "
IntFunc_Lib.cc
" definiert sein. Ist diese Bibliothek nicht
eingebunden so können keine Ausgaben vom Programm getätigt werden. Ein typischer Eintrag in
"
IntFunc_Lib.cc
" sieht z.B. so aus:
void
Msg_WriteHex$opc(
0x23
)(
word
val);
Diese Definition besagt, das die Funktion("Msg_WriteHex") im Interpreter mit einem
Sprungvektor von 0x23
aufgerufen wird, und als Parameter ein word auf dem Stack zu übergeben ist.
Änderungen in der Bibliothek "
IntFunc_Lib.cc
" können dazu führen, daß die dort deklarierten
Funktionen nicht mehr korrekt ausführbar sind!