2

可能重复:
int 的大小是否取决于编译器和/或处理器?

我正在使用64 bit操作系统(Windows 7)并使用Dev C++编译器(32 位)。我也使用Microsoft Visual C++ (32 位)

我对基元的大小感到困惑。(int、char、short 等) 请解决我的几个问题:

• 这些数据类型的大小取决于什么?我听说大小因处理器、操作系统、编译器的种类而异。是这样吗 ?如果是,请解释它们有何不同。

• 如果我使用 64 位操作系统和 32 位编译器,生成的二进制文件将兼容 32 位操作系统和 64 位操作系统吗?请妥善解决这个问题,并给出清晰准确的答案。

• 影响在特定平台上生成的二进制文件的因素是什么?

• 假设在 32 位 Linux 上使用 32 位编译器生成二进制文件,在 32 位 Windows 上会有什么不同吗?

• 数据类型的范围是如何int定义的?它取决于哪些因素?早些时候我读到它是32767但在使用 Microsoft Visual C++ 时它大于32767. 范围完全取决于编译器还是还取决于操作系统或它是什么类型的处理器?

• 有一个程序:

#include<iostream.h>

using namespace std;

int main() {
 int x;
 cout<<sizeof(x);
}

在 32 位 windows 上使用 Microsoft Visual C++ 2010 (32 bit) 时,它会打印4为答案。如果我在 64 位平台上运行,这个结果会有所不同吗?无论如何,请给出适当的理由和答案。

4

0 回答 0