首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于win32 和 win64 上简单类型的长度

2013-01-06 
关于win32 和 win64 下简单类型的长度由于现在的系统涉及到用户使用64位win7环境,而程序是在winXP下开发的

关于win32 和 win64 下简单类型的长度
由于现在的系统涉及到用户使用64位win7环境,而程序是在winXP下开发的。由于程序用到了序列化文件的读写,所以很担心在win7下是否有问题。麻烦各位告诉我,在32位和64位下,以下数据类型的长度各是多少?
int
float 
double

[解决办法]
一样的,都是4/4/8

但是 指针变成8字节了
[解决办法]

引用:
不是说int类型的长度是与操作系统相关的吗,为啥64位下还是4字节呢?


相关,但不一定

C++标准则根本没做规定。除了char,只规定相对大小,比如long不能小于int

反正Windows保持32位
[解决办法]
基本数据类型的长度由编译器决定,int可能是4字节,也可能是8字节。
若需确定使用32还是64位的整形,在windows下应使用:INT32、UINT32、INT64或UINT64。
MSDN如是说。
[解决办法]
指针8字节,long8字节,其他不变。但是编译器不同会有差别。
[解决办法]
还有个问题需要提醒楼主:
变量占用的内存空间大小是个编译时值,在编译时就确定了。
如果在32位机上编译的,而且int占用4字节内存空间,则程序在64位机上运行,int型还是占用4字节。但如果同样的代码在64位机上编译,则可能int占用8字节。
所以,你的程序编译好后,在32位还是64位机上运行,单从int型等占用内存空间长度方面来说,影响不大。

热点排行