2015-01-04 4 views
5

Jestem początkującym programistą D. Po przeczytaniu Fundamental Types, postanawiam sprawdzić typ size_t w moim 64 -bit Windows 7 OS. Kod jest tak:Dlaczego typ size_t jest uint w 64-bitowym systemie Windows 7?

import std.stdio; 

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

Po wykonaniu, wyjście jest:

Type: uint 
Size: 4 

Per mojego zrozumienia, rodzaj size_t należy Ulong na 64 -bitowa OS.
Czy ktoś może dać jakąkolwiek wskazówkę? Bardzo dziękuję z góry!

+0

Możliwe, że proces 32-bitowy jest uruchomiony? –

+3

Czy kompilujesz program 64-bitowy? Pamiętaj, że mówienie, że jesteś w 64-bitowym systemie operacyjnym, nie odpowiada na to pytanie. – hvd

+0

@hvd: Po użyciu komendy "' dmd -v ", wyświetla" 'DMD32 D Compiler v2.066.1'". Myślę, że to oznacza, że ​​'dmd' może tylko skompilować 32-bitowy kod, prawda? –

Odpowiedz

8

Bitness twojego programu różni się od bitness systemu operacyjnego lub kompilatora.

W przypadku DMD, aby utworzyć 64-bitowy plik wykonywalny, należy określić przełącznik -m64. Domyślnie DMD tworzy programy o takiej samej wydajności, jak kompilator, a pakiet Windows zawiera 32-bitowy kompilator. (Jeśli chcesz, możesz także skompilować 64-bitowy kompilator z kodu źródłowego, ale nie wpłynie to na sposób budowania programów 32-bitowych lub 64-bitowych.)

Powiązane problemy