如何用C++代码检测你用的编程环境是64系统还是32位系统?

来源:互联网 发布:法宣刷积分软件 编辑:程序博客网 时间:2024/05/20 18:43

如何用C++代码检测你用的编程环境是64系统还是32位系统?

在C++中32位和64位编码还是有区别的,比如你要输出或使用一个指针时要转化成4字节呢还是8字节呢?

aClass* p = new aClass();cout << (unsigned int)p << endl;     // 32 位系统cout << (unsigned long)p << endl;    // 64 位系统

首先得明白32位系统和64位系统的区别。

32位和64位系统的主要差别在于CPU一次处理数据的能力是32位还是64位。所以从这里来看64位系统的执行效率是比32位更高的。而对于C++程序员来说它对我们的影响除了X86和X64架构平台影响之外,还有存储时地址的影响。32位的寻址范围是2^32 = 4G,也就是说32位系统最高支持4G内存,而64位系统的寻址范围是2^64 = 4G*4G,它所支持的内存对于现在我技术来时是个天文数字。

方法一:

用指针的方式,因为32位系统的寻址空间只有32位大小,所以32位系统的指针所指向的地址应该是32位,如果用sizeof求任意类型的的指针的大小的话应该得到4字节。同里如果是64位系统的话则是8字节。

cout << "sizeof(int*):" << sizeof(int*) << endl;     // 32 位系统则是4字节, 64位系统则是8字节
0 0
原创粉丝点击