8

4 を出力する次のプログラムがあります。このプログラムを Windows 7 64 ビットで実行しています。64 ビット プラットフォームの場合は 8 を出力するべきではありませんか? 前もって感謝します。

#include <stdio.h>
void main()
{
    printf("%d", sizeof(void*));
}
4

1 に答える 1

14

C などのコンパイル済み言語を使用する場合、ポインターのサイズは、コードを実行しているプラ​​ットフォームによって決まりません。コードをコンパイルしたプラットフォームにのみ依存します。

Windows 7 64 ビットでは、32 ビット プラットフォーム用にコンパイルされたコードを実行できます。プログラムの出力から判断すると、コードは Win-32 用にコンパイルされているようです。

Visual Studio 2010 で、C/C++ プロジェクトのプロパティ ページに移動し、Active (x64)[プラットフォーム] ドロップダウンで が選択されていることを確認します (既定では Win32 です)。ドロップダウンで が利用できない場合x64は、 をクリックして、プロジェクトのプラットフォームを[Configuration Manager...]選択します。x64[コピー元...] ダイアログが開いた場合は、クリック[OK]して閉じます。プログラムは、再コンパイル後に 64 ビット モードで実行する必要があります。

于 2013-05-29T21:05:59.097 に答える