Primitive Datentypen in C


Die nachfolgende Tabelle zeigt den Speicherbedarf von primitiven Datentypen und Pointern in der Programmiersprache C in Abhängigkeit des Datenmodells (ILP32, LP64, ILP64,...) in Byte.

Bei der Frage nach dem Speicherbedarf ist es nicht nur relevant, ob es sich um Prozessorarchitekturen mit 8 Bit, 16 Bit, 32 Bit oder 64 Bit handelt, sondern genauer um welches Datenmodell des Prozessors es geht (... , IP16, ILP32, LP32, LP64, ILP64, LLP64, SILP64, ...).

Sie werden bestimmt sehr gut mit der ILP32 vertraut sein, wenn Sie unter Linux oder Windows auf einem 32-Bit-System programmiert haben. Das Datenmodell hat sich hier durchgesetzt.

Bei 64-Bit-Architekturen wird es künftig schwieriger: Datemodell 64-Bit

LP32 war bei den ersten Versionen von DOS.

Die Pointer sind keine primitiven Datentypen, aber es ist vielleicht interessant sie hier in dieser Tabelle der Vollständigkeit halber aufzuführen, den auch für Pointer gibt es Rechenregeln und einen Speicherbedarf, der von der Architektur abhängig ist.

8 Bit 16 Bit (IP16) ILP32 LP32 LP64 ILP64 LLP64 SILP64
char 8 8 8 8 8 8 8 8
short 16 16 16 16 16 32 16 32
int 16 / 8+ 16 32? 16? 32? 64 32 64
long 32 / 16+ 32 32 64 64 64 32 64
long long 64 / 32+ 64 64 64 64 64 64 64
float 32 32 32 32 32 32 32 32
double 32 64* 64* 64* 64 64 64 64
Pointer 8 / 16 16 32 32 64 64 64 64

* je nach Compiler-Typ wird hier dem Entwickler die Wahl überlassen oder es wird einfach float verwendet. Gerade bei Compilern für auf 8- oder 16-Bit-Mikrocontroller werden oft nur floats verwendet, auch wenn double deklariert wird.
+ Mit der Compileroption -mint8 wird der GNU-C-Compiler für AVR-Mikrocontroller angewiesen den Datentyp 'int' als 8-Bit-Integer zu behandeln. "A char will be 1 byte, an int will be 1 byte, an long will be 2 bytes and long long will be 4 bytes. Please note that this option does not comply to the C standards, but it will provide you with smaller code size. "

Die Schlüsselwörter signed und unsigned haben keinen Einfluss auf die Werte in der Tabelle von oben.

Empfehlungen:


Weitere ArchitekturenKeine Zugangsberechtigung


http://cgi.snafu.de/ohei/user-cgi-bin/veraresp.cgi?Suchoption=Akronym;Weitere+Option=wide;Anfrage=BIT


Siehe auch CPrimitiveDatentypen

There are no comments on this page. [Add comment]

Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki