int
float
double
9 个解决方案
#1
是指windows操作系统下,不是linux,谢谢
#2
一样的,都是4/4/8
但是 指针变成8字节了
但是 指针变成8字节了
#3
sizeof最准了。
#4
不是说int类型的长度是与操作系统相关的吗,为啥64位下还是4字节呢?
#5
相关,但不一定
C++标准则根本没做规定。除了char,只规定相对大小,比如long不能小于int
反正Windows保持32位
#6
基本数据类型的长度由编译器决定,int可能是4字节,也可能是8字节。
若需确定使用32还是64位的整形,在windows下应使用:INT32、UINT32、INT64或UINT64。
MSDN如是说。
若需确定使用32还是64位的整形,在windows下应使用:INT32、UINT32、INT64或UINT64。
MSDN如是说。
#7
那double类型在windows下所有环境下都是8字节吗?有特例吗?
#8
指针8字节,long8字节,其他不变。但是编译器不同会有差别。
#9
还有个问题需要提醒楼主:
变量占用的内存空间大小是个编译时值,在编译时就确定了。
如果在32位机上编译的,而且int占用4字节内存空间,则程序在64位机上运行,int型还是占用4字节。但如果同样的代码在64位机上编译,则可能int占用8字节。
所以,你的程序编译好后,在32位还是64位机上运行,单从int型等占用内存空间长度方面来说,影响不大。
变量占用的内存空间大小是个编译时值,在编译时就确定了。
如果在32位机上编译的,而且int占用4字节内存空间,则程序在64位机上运行,int型还是占用4字节。但如果同样的代码在64位机上编译,则可能int占用8字节。
所以,你的程序编译好后,在32位还是64位机上运行,单从int型等占用内存空间长度方面来说,影响不大。
#1
是指windows操作系统下,不是linux,谢谢
#2
一样的,都是4/4/8
但是 指针变成8字节了
但是 指针变成8字节了
#3
sizeof最准了。
#4
不是说int类型的长度是与操作系统相关的吗,为啥64位下还是4字节呢?
#5
相关,但不一定
C++标准则根本没做规定。除了char,只规定相对大小,比如long不能小于int
反正Windows保持32位
#6
基本数据类型的长度由编译器决定,int可能是4字节,也可能是8字节。
若需确定使用32还是64位的整形,在windows下应使用:INT32、UINT32、INT64或UINT64。
MSDN如是说。
若需确定使用32还是64位的整形,在windows下应使用:INT32、UINT32、INT64或UINT64。
MSDN如是说。
#7
那double类型在windows下所有环境下都是8字节吗?有特例吗?
#8
指针8字节,long8字节,其他不变。但是编译器不同会有差别。
#9
还有个问题需要提醒楼主:
变量占用的内存空间大小是个编译时值,在编译时就确定了。
如果在32位机上编译的,而且int占用4字节内存空间,则程序在64位机上运行,int型还是占用4字节。但如果同样的代码在64位机上编译,则可能int占用8字节。
所以,你的程序编译好后,在32位还是64位机上运行,单从int型等占用内存空间长度方面来说,影响不大。
变量占用的内存空间大小是个编译时值,在编译时就确定了。
如果在32位机上编译的,而且int占用4字节内存空间,则程序在64位机上运行,int型还是占用4字节。但如果同样的代码在64位机上编译,则可能int占用8字节。
所以,你的程序编译好后,在32位还是64位机上运行,单从int型等占用内存空间长度方面来说,影响不大。