C 语言定义了一些基本数据类型,但是没有给出数据类型实际的位宽。随着 64bit 处理器的大量使用,操作系统等软件就需要选择匹配上这些数据类型,由此产生出了下表列出的各种数据模型(单位: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位,double总是64位。
文章评论