Constante termen
Een term of delen van een term kan/kunnen constant zijn. Deze deeltermen kunnen al
tijdens de compiler –looptijd berekend worden.
Zo wordt b.v.
12
+
123
–
15
door de compiler samengevat tot
120
Soms moeten termen constant zijn opdat ze geldig zijn. Zie b.v. declarering van array
variabelen.
5.1.3 Datatypes
Waarden hebben altijd een bepaald datatype. De waarden van gehele getallen hebben in
CompactC een 8 of 16 bit breed datatype, getallen met floating point zijn altijd 4 byte lang.
Datatype
Voorteken
char
Ja
unsigned char
Nee
byte
Nee
int
Ja
unsigned int
Nee
word
Nee
float
Ja
Zoals u ziet, zijn de datatypes "unsigned char" en "byte" identiek, net als "unsigned int"
en "word".
Strings
Er bestaat 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 zeer 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 type –convertering 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
Waardebereik
-128 ... +127
0 ... 2555 8
0 ... 2555 8
-32768 ... +32767
0 ... 65535
0 ... 65535
e
e
±1.175
-38 to ±3.402
38
Bit
8
8
8
16
16
16
32
41