User manual

75
5.2.3 Datatypes
Waarden bezitten steeds een bepaalde datatype. De integerwaarden (gehele getallen
waarden) hebben in CompactC een 8 of 16 bit breed datatype, getallen met floating point
zijn altijd 4 byte lang.
Datatypee Voorteken Waardebereik Bit
char Ja -128 … +127 8
unsigned char
Nee 0 … 2555 8 8
byte Nee 0 … 2555 8 8
int
Ja -32768 … +32767 16
unsigned int Nee 0 … 65535 16
word Nee 0 … 65535 16
float Ja
±1.175
e
-38 to
±3.402
e
38
32
Zoals te zien is, zijn de datatypes
“unsigned char”
en
“byte”
identiek, net als
“unsigned int
en
“word”.
Strings
Er is geen expliciet “String” datatype. Een string is gebaseerd op een character array. U
moet de grootte van de array dusdanig kiezen, dat alle tekens van de string in het character
array passen. Bovendien is er ruimte nodig voor een termineringsteken (decimale nul), om
het einde van de keten aan te geven.
Type –convertering
Bij wiskundige termen gebeurt het heel vaak dat aparte waarden niet van hetzelfde type zijn.
Zo zijn de datatypes in de volgende term gemengd (a is integer variabele).
a + 5.5
In dit geval wordt
a
eerst geconverteerd naar het datatype
float
en daarna wordt er 5.5 bij
opgeteld. Het datatype van het resultaat is eveneens float. Bij de typeconvertering gelden
de volgende regels:
Als bij de verbinding van twee 8 bit of 16 bit integere waarden één van beide datatypes
van een voorteken is voorzien (“
signed
”), dan is ook het resultaat van de term van een
voorteken voorzien. D.w.z. de operatie wordt “signed” uitgevoerd.
Als één van beide operandi van het type float is, dan is het resultaat eveneens van het
type float. Als één van de beide operandi een 8 bit of 16 bit datatype heeft, dan wordt
deze voor de operatie omgevormd tot een
float
datatype.
5.2.4 Variabelen
Variabelen kunnen verschillende waarden aannemen, afhankelijk van het datatype waarmee
ze gedefinieerd zijn. Een variabele –definitie ziet er als volgt uit:
Type
variabelennaam;