Revision [3294]

This is an old revision of CPrimitiveDatentypen made by ToBo on 2008-05-30 00:30:39.

 


Die nachfolgende Tabell zeigt die Größe von primitive Datentypen und Pointern in C in Abhängigkeit in Abhängigkeit des Datenmodells (ILP32, LP64, ILP64,...) in Byte.

Das Datenmodell hängt u.a. von der Rechnerarchitektur ab (8 Bit, 16 Bit, 32 Bit, 64 Bit)

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

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

LP32 die 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.

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 16 32? 16? 32? 64 32 64
long 32 32 32 64 64 64 32 64
long long 64 64 64 64 64 64 64 64
float 32 32 32 32 32 32 32 32
double 64* 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.

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

Empfehlungen:

CPrimitiveDatentypenWeitere Weitere Architekturen


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


Siehe auch
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki