C Control PRO UNIT MEGA 32 198206 Benutzerhandbuch

Produktcode
198206
Seite von 134
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
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!