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-Typenstdint.h
Typen
BitsVorzeichenWertebereich
charuint8_t8Unsigned
vorzeichenlos
0 bis
255
signed charint8_t8Signed
mit Vorzeichen
-128 bis
127
unsigned shortuint16_t16Unsigned
vorzeichenlos
0 bis
65,535
shortint16_t16Signed
mit Vorzeichen
-32768 bis
32767
unsigned int

(2 oder 4 Byte)

uint32_t32Unsigned
vorzeichenlos
0 bis
4294967295
int (2 oder 4 Byte)int32_t32Signed
mit Vorzeichen
-2147483648 bis
2147483647
unsigned
long long
uint64_t64Unsigned
vorzeichenlos
0 bis
18446744073709551615
long longint64_t64Signed
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-TypenBitsWertebereichenGenauigkeit
float321,2E-38 to 3,4E+386 Nachkommastellen
double642,3E-308 to 1,7E+30815 Nachkommastellen
long double803,4E-4932 to 1,1E+493219 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.