2015-01-04 2 views
5

私はプログラミングDの初心者です。 Fundamental Typesを読んだ後、私は64ビットWindows 7 OSでsize_tのタイプをチェックすることにしました。コードは次のようである:実行後64ビットWindows 7でsize_tのタイプがuintになっているのはなぜですか?

import std.stdio; 

void main() 
{ 
    writeln("Type: ", size_t.stringof); 
    writeln("Size: ", size_t.sizeof); 
} 

出力され、:私の理解パー

Type: uint 
Size: 4 

size_tの種類は64ビットOS上でULONGする必要があります。
誰か手がかりを与えることができますか?ありがとうございました!

+0

32ビットプロセスを実行している可能性がありますか? –

+3

64ビットプログラムをコンパイルしていますか?あなたが64ビットOSを使用していると言っても、その質問には答えられないことに注意してください。 – hvd

+0

@hvd: "dmd -v"コマンドを使用した後、 "DMD32 D Compiler v2.066.1'"と表示されます。 Ithinkは、この 'dmd'は32ビットコードだけをコンパイルできることを意味します。 –

答えて

8

プログラムのビット数は、OSまたはコンパイラのビット数とは異なります。

DMDでは、実行可能ファイルを64ビットで作成するには、-m64スイッチを指定します。デフォルトでは、DMDはコンパイラと同じビット数のプログラムを作成し、Windowsパッケージには32ビットコンパイラが組み込まれています。 (希望すれば、ソースコードから64ビットコンパイラをビルドすることもできますが、32ビットまたは64ビットプログラムのビルド方法には影響しません)。

関連する問題