2010-07-05 7 views
6

Ich habe eine C-Header-Datei (es ist ein Teil eines SDK) und es gibt eine Typedef, die von Systemarchitektur abhängt (ob es 32 oder 64-Bit ist), wie übertrage ich es auf meine D Modul? Vielen Dank.bestimmen CPU-Architektur in D

Edit: Ok, das war zu einfach und ich habe schon eine Lösung finden ... Wenn jemand interessiert, es ist:

version(X86) { 
    typedef int your_type; 
} 
version(X86_64) { 
    typedef long your_type; 
} 

Antwort

9
version(X86) 
{ 
    // 32-bit 
} 
else 
version(X86_64) 
{ 
    // 64-bit 
} 
else 
{ 
    // none of the above 
} 

Quelle: http://digitalmars.com/d/2.0/version.html

+0

Dank. Übrigens gibt es irgendein Analogon von Cs #Fehler in D, so dass ich einen Kompilierzeitfehler in "keiner der obigen Fälle" anzeigen kann? – szx

+2

Sie könnten 'static assert (0)' innerhalb des 'else' Blocks machen. – You

+0

Was Sie gesagt haben. : P –