int,long int,short int的宽度和机器字长及编译器有关,但一般都有以下规则(ANSI/ISO制订的)
sizeof(short int)
<=sizeof(int)
sizeof(int)
<=sizeof(long int)
short int
至少应为16位(2字节)long int
至少应为32位
数据类型 | 16位编译器 | 32位编译器 | 64位编译器 |
---|---|---|---|
char | 1字节 | 1字节 | 1字节 |
char* | 2字节 | 4字节 | 8字节 |
short int | 2字节 | 2字节 | 2字节 |
int | 2字节 | 4字节 | 4字节 |
unsigned int | 2字节 | 4字节 | 4字节 |
float | 4字节 | 4字节 | 4字节 |
double | 8字节 | 8字节 | 8字节 |
long | 4字节 | 4字节 | 8字节 |
long long | 8字节 | 8字节 | 8字节 |
unsigned long | 4字节 | 4字节 | 8字节 |
(本文内容出自程序喵大人公众号- 面试常考,项目易错,长文详解C/C++中的字节对齐 作者: )