我试图在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中找不到任何这样的选项。这是怎么解释的?
答案 0 :(得分:2)
&#34; bitness&#34;机器或操作系统无关紧要。它没有任何区别。
唯一重要的是你要求编译器生成什么样的代码。在您的实验中,您要么要求GCC生成32位代码,要么自行默认为32位代码。这就是你的指针是32位宽的原因。
如果要查看64位指针,则必须明确要求GCC生成64位代码。在编译器的命令行中指定-m64
。