1 Datentypen in C

kner 2020

 

1.1 Wertebereich von Variablen

 

Mit Vorzeichen

Bezeichnung

Bit

Wertebereich

Anmerkung

int8_t      

8

-128 … +127

 

int16_t

16

-32000 bis +32000

grob gerundete Grenzen

int

16

-32700 bis +32700

dieser Datentyp ist nicht typsicher, d.h.  er hat je nachdem, auf welchem System man programmiert entweder 16 oder 32 Bit Breite

signed char

8

-128 … + 127

nicht typsicher

 

Ohne Vorzeichen

Bezeichnung

Bit

Wertebereich

Anmerkung

uint8_t      

8

0 … +255

 

uint16_t

16

0 bis +65536

 

unsigned int

16

0 bis +65536

nicht typsicher

char

unsigned char

8

0 … +255

nicht typsicher!
Unser Compiler behandelt char als unsigned!

 

Float

Bezeichnung

Bit

Wertebereich

Anmerkung2

float   

32

±1.18E-38 bis ±3.39E+38

bei diesem Compiler kein Unterschied zwischen float und double (und long double)

double

32

±1.18E-38 bis ±3.39E+38

 

 

Die Grenzen dieser Wertebereiche kann man in den Libraries <float.h> und <limits.h> abfragen.

 

Beispiel: Was ergibt folgender Code am AVR Compiler?

uint8_t  x = -1;
uint16_t y = -1;

Ergebnis: x enthält 255 und y enthält 65535, die Zahl -1 wird als Bitmuster 0xff bzw. 0xffff abgelegt.

 

Beispiel: Vereinbaren sie eine Variable, die von 1 bis 10 zählt

Antwort: uint8_t x;   wir wählen immer den Datentyp, der am wenigsten Speicher benötigt, aber trotzdem für mögliche spätere Änderungen groß genug ist.

 

 

Beispiel: Wie kann man verhindern, dass man viele Programmzeilen änder muss, wenn sich später herausstellt, dass man den Typ zu klein gewählt hat?

#define TMyType uint8_t

TMyType x;