我有以下打印的程序4.我在Windows 7 64位上運行此程序。不應該爲64位平臺打印8嗎?提前致謝。爲什麼在Windows 64位平臺上void指針的大小是4
#include <stdio.h>
void main()
{
printf("%d", sizeof(void*));
}
我有以下打印的程序4.我在Windows 7 64位上運行此程序。不應該爲64位平臺打印8嗎?提前致謝。爲什麼在Windows 64位平臺上void指針的大小是4
#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
在下拉菜單中不可用,請單擊[Configuration Manager...]
,然後選擇x64
作爲項目的平臺。如果「Copy from ...」對話框打開,請點擊[OK]
解除它。程序在重新編譯後應該以64位模式運行。
我將它編譯在同一臺計算機上,也許我必須包含一些編譯器或鏈接器選項。你知道什麼選擇將編譯爲64位。我正在使用visual studio 2010.謝謝 – user2340048
@ user2340048我編輯了答案,以解釋如何在visual studio中編譯x64。 – dasblinkenlight
通過爲編譯器使用64位選項解決。 – user2340048
它不依賴於編譯器嗎? – crush
你確定你正在構建一個64位的二進制文件嗎? –
什麼版本的編譯器使用?如果你的編譯器是32位的,它將使用WOW64。並會表現得像普通的32位程序 – Guanxi