您的位置:首页 > 编程语言 > C语言/C++

C++ x86程序与x64程序中,各种内置类型的大小比较

2018-01-15 23:43 471 查看
代码:

#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不一样之外,其它的内置类型是完全相同的.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: