Chinaunix首页 | 论坛 | 博客
  • 博客访问: 49529
  • 博文数量: 19
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 215
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-08 11:40
文章分类

全部博文(19)

文章存档

2011年(1)

2009年(18)

我的朋友
最近访客

分类: C/C++

2009-04-18 08:26:21

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


阅读(843) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~