我有以下打印数字4的程序。我正在64位Windows 7上运行此程序。对于64位平台,它不应该打印8吗?提前感谢。
#include <stdio.h>
void main()
{
printf("%d", sizeof(void*));
}
#include <stdio.h>
void main()
{
printf("%d", sizeof(void*));
}
当您使用编译语言(如C)时,指针的大小不是由您运行代码的平台决定的:它仅取决于为其编译代码的平台。
Windows 7 64位可以运行为32位平台编译的代码。根据您程序的输出,您的代码似乎已编译为Win-32。
在Visual Studio 2010中,转到您的C/C++项目的属性页面,并确保在“平台”下拉列表中选择“Active (x64)”(默认情况下为Win32)。如果下拉列表中没有可用的“x64”,请单击“[配置管理器...]”,并选择项目的平台为“x64”。如果弹出了“从...复制”的对话框,请单击“[确定]”来关闭它。重新编译后,程序应以64位模式运行。
sizeof
的值。 - Steve Summit