使用cygwin在64位窗口上的C ++中int指针的大小

时间:2014-08-09 07:04:11

标签: c++ pointers cygwin 64-bit

我试图在64位Windows 7机器上打印int指针的大小。我正在使用cygwin。 我希望它能给出输出8,但实际输出是4。

#include <iostream>
using namespace std;

int main()
{
    cout<< sizeof(int*)<<endl;
    return 0;
}

可能相关的问题What the pointer size in 64 bits computer in C++?

但它是关于在Visual Studio中编译为64位项目。我在cygwin中找不到任何这样的选项。这是怎么解释的?

1 个答案:

答案 0 :(得分:2)

&#34; bitness&#34;机器或操作系统无关紧要。它没有任何区别。

唯一重要的是你要求编译器生成什么样的代码。在您的实验中,您要么要求GCC生成32位代码,要么自行默认为32位代码。这就是你的指针是32位宽的原因。

如果要查看64位指针,则必须明确要求GCC生成64位代码。在编译器的命令行中指定-m64