可能重复:
Does the size of an int depend on the compiler and/or processor?
我正在使用64 bit
OS (Windows 7)并使用Dev C++
编译器(32位)。我还使用Microsoft Visual C++
(32位)。
我对原语的大小感到困惑。 (int,char,short等) 请解答我的几个问题:
•这些数据类型的大小取决于什么?我听说尺寸因处理器,操作系统,编译器的种类而异。是这样吗 ?如果是,请解释它们如何变化。
•如果我使用64位操作系统和32位编译器,将生成的二进制文件将兼容32 OS和64 OS?请妥善解决此问题,并给出明确而准确的答案。
•影响特定平台上生成的二进制文件的因素是什么?
•假设在32位linux上使用32位编译器生成二进制文件,在32位窗口上是否会有任何不同?
•如何定义int
等数据类型的范围?它取决于哪些因素?之前我读过它是32767
,但在使用Microsoft Visual C ++时,它大于32767
。范围是完全依赖于编译器还是取决于操作系统或它是什么类型的处理器?
•让一个程序:
#include<iostream.h>
using namespace std;
int main() {
int x;
cout<<sizeof(x);
}
在32位窗口上使用Microsoft Visual C ++ 2010(32位)时,它会打印4
作为答案。如果我在64位平台上运行它,这个结果会有所不同吗?在任何情况下都给出正确的答案。