64位机器C++编程注意事项:
1. 不能想当然的认为sizeof(int)一定是4或者8,64位cpu下与编译器相关:
2. 64位cpu下指针的大小变为8个字节
3. sizeof(long)的值根据不同的编译器可能会有变化
4. 在平时的编程过程中,不能固定下一种思维,认为sizeof(int)一定是某个数值,为以后程序向64位cpu移植时埋下隐患
========== 64位机器测试环境
----操作系统
我个人使用的测试环境是fedora 10 x86_64, uname -a的结果如下:
Linux waterstrider 2.6.27.21-170.2.56.fc10.x86_64 #1 SMP Mon Mar 23 23:08:10 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
----编译器
g++ (GCC) 4.3.2 20081105 (Red Hat 4.3.2-7)
========== 32位机器测试环境
----操作系统样偶
Linux fc8 2.6.26.6-49.fc8 #1 SMP Fri Oct 17 15:59:36 EDT 2008 i686 i686 i386 GNU/Linux
----编译器
g++ (GCC) 4.1.2 20070925 (Red Hat 4.1.2-33)
========== 比较结果
32位机器和64位机器的各种sizeof结果:
---- 32位机器
sizeof int*: 4
sizeof short: 2
sizeof int: 4
sizeof long: 4
sizeof long long: 8
---- 64位机器
sizeof int*: 8
sizeof short: 2
sizeof int: 4
sizeof long: 8
sizeof long long: 8
阅读(875) | 评论(0) | 转发(0) |