C-Basic: Datentypen in Embedded C/C++ und deren Größen

Bevor eine Variable im Programm verwendet werden kann, muss sie deklariert werden. Datentypen werden verwendet, um einer Variablen einen Typ zuzuweisen. Es ist wichtig die Größe der Unterschiedlichen Datentypen zu kennen um Variablenüberläufe zu verhindern.

Der Wertebereich eines Datentypes kann dabei über folgende Formel berechnet werden: Wertebereich=2^{anz.Bits}-1

Integer Datentypen:

C-Typen stdint.h
Typen
Bits Vorzeichen Wertebereich
char uint8_t 8 Unsigned
vorzeichenlos
0 bis
255
signed char int8_t 8 Signed
mit Vorzeichen
-128 bis
127
unsigned short uint16_t 16 Unsigned
vorzeichenlos
0 bis
65,535
short int16_t 16 Signed
mit Vorzeichen
-32768 bis
32767
unsigned int

(2 oder 4 Byte)

uint32_t 32 Unsigned
vorzeichenlos
0 bis
4294967295
int (2 oder 4 Byte) int32_t 32 Signed
mit Vorzeichen
-2147483648 bis
2147483647
unsigned
long long
uint64_t 64 Unsigned
vorzeichenlos
0 bis
18446744073709551615
long long int64_t 64 Signed
mit Vorzeichen
-9223372036854775808 bis
9223372036854775807

Je nach Plattform kann ein int / unsigned int 2 oder 4 Byte groß sein. Um die genaue Größe eines Typs oder einer Variablen auf einer bestimmten Plattform zu erhalten, kann der sizeof Operator verwendet werden. Der Ausdruck sizeof(type) liefert die Speichergröße des Objekts oder Typs in Bytes. Es folgt ein Beispiel, um die Größe des int Typs auf jeder Maschine zu erhalten.

Gleitkomma-Typen

Die folgende Tabelle zeigt die Details von Standard Gleitkomma-Typen mit Speichergrößen und Wertebereichen und deren Genauigkeit.

C-Typen Bits Wertebereichen Genauigkeit
float 32 1,2E-38 to 3,4E+38 6 Nachkommastellen
double 64 2,3E-308 to 1,7E+308 15 Nachkommastellen
long double 80 3,4E-4932 to 1,1E+4932 19 Nachkommastellen

Die Header-Datei float.h definiert Makros, mit denen diese Datentypen verwendet werden können, sowie die Abfrage von Informationen über die binäre Darstellung von reellen Zahlen. Das folgende Beispiel druckt den von einem Gleitkomma-Typ belegten Speicherplatz und seine Wertebereich.

Der void-Datentyp

Der Void-Typ gibt an, dass kein Wert verfügbar ist.