unsigned long
❗易错点 1:unsigned long 在不同平台长度不同
long 曾经比int大,因为int很早是2字节,但是在windows上一样
| 平台 | 编译模型 | unsigned long大小 | 
|---|---|---|
| Windows 64/32位 | LLP64/LP64 | 4字节(32位) | 
| Linux/macOS 64位 | LP64 | 8字节(64位) | 
现代C++最佳实践
使用#include<cstdint>,基于C++11标准,跨平台编程,使用下面的类型
| 类型 | 含义 | 
|---|---|
| int8_t | 8位有符号整数 | 
| uint8_t | 8位无符号整数 | 
| int16_t | 16位有符号整数 | 
| uint16_t | 16位无符号整数 | 
| int32_t | 32位有符号整数 | 
| uint32_t | 32位无符号整数 | 
| int64_t | 64位有符号整数 | 
| uint64_t | 64位无符号整数 | 
size_t
size_t表示内存中可寻址的最大大小,其大小与平台的指针大小(地址总线宽度)相关。
| 1 | #include <cstddef> // size_t 定义在这里 | 
| 平台 | 指针大小 | size_t大小 | 最大值 | 
|---|---|---|---|
| 32位 | 4字节 | 4字节 | 4GB (2^32 - 1) | 
| 64位 | 8字节 | 8字节 | 16EB (2^64 - 1) | 
| 1 | // 错误示例 | 
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Min的博客!
 评论
