C语言填坑之变量占用的内存
(1)C语言常用的变量类型有:chars,short,int,long,long long,float,double。
(2)C 语言标准仅规定:long型占用字节数不小于int型,int型不小于short型。
(3)不同类型的变量占用内存大小(基本数据类型长度)由编译器选择的数据模型决定。
(4)常见的数据模型有:LP32、ILP32、LP64 、LLP64 、ILP64。其中,I表示int型,L表示long型,P表示pointer型,LL表示long long。
(5)32位的类UNIX系统和windows均使用ILP32模型;64位的类UNIX系统使用LP64模型,windows使用LLP64模型。
(6)不同数据模型中,char、short、long long、float、double类型占用的字节数一致;仅int、long和pointer存在差异,其中pointer与机器字长一致。
Type(bit) | LP32 | ILP32 | LP64 | ILP64 | LLP64 |
---|---|---|---|---|---|
Char | 8 | 8 | 8 | 8 | 8 |
Short | 16 | 16 | 16 | 16 | 16 |
Int | 16 | 32 | 32 | 64 | 32 |
Long | 32 | 32 | 64 | 64 | 32 |
Long long | 64 | 64 | 64 | 64 | 64 |
Pointer | 32 | 32 | 64 | 64 | 64 |
Float | 32 | 32 | 32 | 32 | 32 |
Double | 64 | 64 | 64 | 64 | 64 |