2015-01-04 10 views
5

Sono un principiante della programmazione D. Dopo aver letto Fundamental Types, decido di controllare il tipo size_t nel mio sistema operativo Windows 7 64-bit. Il codice è simile a questo:Perché il tipo di size_t è uint in Windows 7 a 64 bit?

import std.stdio; 

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

Dopo l'esecuzione, l'output è:

Type: uint 
Size: 4 

Per la mia comprensione, il tipo di size_t dovrebbe essere Ulong su 64 bit OS.
Qualcuno potrebbe dare qualche indizio? Grazie mille in anticipo!

+0

Possibile che tu stia eseguendo un processo a 32 bit? –

+3

Stai compilando un programma a 64 bit? Tieni presente che quando dici che sei su un sistema operativo a 64 bit non rispondi a questa domanda. – hvd

+0

@hvd: Dopo aver usato il comando "' dmd -v' ", visualizza" 'DMD32 D Compiler v2.066.1'". Ithink significa che 'dmd' può compilare solo codice a 32 bit, giusto? –

risposta

8

Il testimone del programma è distinto dal controllo del sistema operativo o del compilatore.

Con DMD, per creare un eseguibile a 64 bit, specificare lo switch -m64. Per impostazione predefinita, DMD creerà programmi con lo stesso bitness del compilatore e il pacchetto Windows include un compilatore a 32 bit. (Se lo desideri, puoi anche compilare un compilatore a 64 bit dal codice sorgente, ma questo non influirà sul modo in cui costruisce programmi a 32 o 64 bit.)

Problemi correlati