C Control PRO UNIT MEGA 32 198206 Benutzerhandbuch
Produktcode
198206
62
Compiler
© 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
...
#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 "
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.
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!