C++ x86程序与x64程序中,各种内置类型的大小比较
2018-01-15 23:43
471 查看
代码:
在不同的开发环境中,分别编译出x86程序和x64程序,观察执行结果
环境: Win10_64位 + VS2015_32位
在上面的结果中,除了指针的size不一样之外,其它的内置类型是完全相同的.
#include <iostream> #include <cstdio> #include <list> #include <string> #include <cstdint> #include <exception> #define PRINT_SIZE(type) printf("%-17s = %zu,inner type: %s\n", "sizeof("#type")", sizeof(type), typeid(type).name()) void print_sys_bits() { #ifdef _WIN64 std::cout << "x64:" << std::endl; #else std::cout << "x86:" << std::endl; #endif } void print_sizes() { PRINT_SIZE(void*); PRINT_SIZE(float); PRINT_SIZE(double); PRINT_SIZE(short); PRINT_SIZE(int); PRINT_SIZE(long); PRINT_SIZE(long long); PRINT_SIZE(int8_t); PRINT_SIZE(uint8_t); PRINT_SIZE(int16_t); PRINT_SIZE(uint16_t); PRINT_SIZE(int32_t); PRINT_SIZE(uint32_t); PRINT_SIZE(int64_t); PRINT_SIZE(uint64_t); } int32_t main() { print_sys_bits(); print_sizes(); std::cin.get(); return 0; }
在不同的开发环境中,分别编译出x86程序和x64程序,观察执行结果
环境: Win10_64位 + VS2015_32位
在上面的结果中,除了指针的size不一样之外,其它的内置类型是完全相同的.
相关文章推荐
- c++各种内置类型字节大小
- C/C++ int、long、double、char等各种内置数据类型的表示范围(最大最小值)
- c++内置数据类型的取值范围和大小总结
- 【转】【C++】【MFC】各种数据类型大小
- [C++学习]-c++内置类型的大小检测与输出.
- VS2012在win7 64位机中x86和x64下基本类型的占用空间大小
- 用标准C++进行string与各种内置类型数据之间的转换
- C++内置类型的大小检测与输出
- C++ 内置类型在 i5 ,x64 机器上占用的长度
- 用标准C++进行string与各种内置类型数据之间的转换
- 如何判断程序是x86还是x64类型
- 用标准c++进行string与各种内置数据类型的转换(转)
- C/C++程序——递归和循环实现阶乘,并比较N!与(2N N)的大小
- C++冲刺(一)内置数据类型大小
- C/C++学习之C提高----C程序数组排序、数据类型(大小,别名,封装)、变量、程序的内存四区模型(栈,堆,全局,代码区)
- 【C++】用函数模板实现不同类型的两个数比较大小
- 总结一下刚刚写的程序中的C++各种类型的转换string,QString,char*, BYTE等等
- 用标准C++进行string与各种内置类型数据之间的转换
- 用标准c++进行string与各种内置数据类型的转换
- Windows系统,VS和GCC下各种数据类型大小的比较