各种数据类型在16位、32位和64位系统下所占字节差异简介
编写C、C++程序时需要考虑每种数据类型在内存中所占的内存大小,即使同一种数据类型在不同平台下所占内存大小亦不相同,具体对比如下:
数据类型 | 16位系统(byte) | 32位系统(byte) | 64位系统(byte) | 备注 |
char | 1 | 1 | 1 | |
short 、unsigned short | 2 | 2 | 2 | |
int、unsigned int | 2 | 4 | 4 | |
long、unsigned long | 4 | 4 | 8 | |
float | 4 | 4 | 4 | |
double | 8 | 8 | 8 | |
long long | 8 | 8 | 8 | |
long double | 10/12 | 10/16 | 有效位10字节。32位为了对齐实际分配12字节;64位分配16字节 | |
指针 | 2 | 4 | 8 |