在别人博客看到这样一句话,觉得总结得蛮到位的:程序运行平台 = CPU+OS+Compiler
| -------------------------------------------------------------------------------------- |
| 在C语言和C++中,经常会出现某一种数据类型所占的字节数为多大的问题,其实这些机器字长和和机器位数没有直接关系,但是和编译器有关系,由编译器在编译期间决定。 |
| |
| 16位编译器 | 32位编译器 | 64位编译器 |
|---|---|---|
| char | 1 | 1 |
| char*(即指针变量) | 2 | 32位的寻址空间是2^32=32个bit=4个字节 |
| 指针 | 2 | 4 |
| short(short int) | 2 | 2 |
| int | 2 | 4 |
| unsigned int | 2 | 4 |
| float | 4 | 4 |
| double | 8 | 8 |
| long(long int) | 4 | 4 |
| long long | 8 | 8 |
| unsigned long | 4 | 4 |
| 最大存储空间 | 2^16 | 2^32 |
C/C++ - 关于不同数据类型在16/32/64位编译器平台上所占内存大小分析
原文:https://www.cnblogs.com/OFSHK/p/14772210.html