User manual

75Compiler
© 2005 Conrad Electronic
5.2.3 Datentypen
Werte haben immer einen bestimmten Datentyp. Die Integerwerte (ganzzahlige Werte) haben in
CompactC einen 8 oder 16 Bit breiten Datentyp, floating point Zahlen sind immer 4 byte lang.
Datentyp Vorzeichen Wertebereich Bit
char Ja -128 ... +127 8
unsigned char Nein 0 ... 255 8 8
byte Nein 0 ... 255 8 8
int Ja -32768 ... +32767 16
unsigned int Nein 0 ... 65535 16
word Nein 0 ... 65535 16
float Ja ±1.175e-38 to
±3.402e38
32
Wie man sieht, sind die Datentypen "
unsigned char
" und
byte
, sowie "
unsigned int
"
und
word
identisch.
Strings
Es existiert kein expliziter "String" Datentyp. Ein String basiert auf einem character array. Man muß
die Größe des arrays so wählen, daß alle Zeichen des Strings in das character array passen.
Zusätzlich wird Platz für ein Terminierungszeichen (dezimal Null) benötigt, um das Ende der
Zeichenkette anzuzeigen.
Typkonvertierung
Bei arithmetischen Ausdrücken passiert es sehr oft, daß einzelne Werte nicht vom gleichen Typ
sind. So sind die Datentypen im folgenden Ausdruck gemischt (a ist integer variable).
a + 5.5
In diesem Fall wird a zuerst in den Datentyp
float
konvertiert und danach 5.5
addiert. Der Datentyp des Ergebnisses ist auch
float
. Es gelten bei der
Typkonvertierung folgende Regeln:
·
Ist bei der Verknüpfung von zwei 8 Bit oder 16 Bit Integerwerten einer der beiden
Datentypen vorzeichenbehaftet ("
signed
") so ist auch das Ergebnis des Ausdrucks
vorzeichenbehaftet. D.h., die Operation wird "
signed"
ausgeführt.
·
Ist einer der beiden Operanden vom Typ
float,
so ist auch
das Ergebnis vom Typ
float
. Sollte einer der beiden Operanden einen 8 Bit oder 16 Bit Datentyp haben, so
wird er vor der Operation in einen
float
Datentyp umgewandelt.
5.2.4 Variablen
Variablen können verschiedene Werte annehmen, abhängig vom Datentyp mit denen sie definiert
wurden. Eine Variablendefinition sieht folgendermaßen aus:
Typ
Variablenname;