2010-07-05 11 views
6

Tengo un archivo de cabecera C (es parte de algún SDK) y hay un typedef que depende de la arquitectura del sistema (ya sea de 32 o 64 bits), ¿cómo lo transfiero a mi D módulo? Gracias.determinar la arquitectura de la CPU en D

Editar: OK, eso era demasiado simple y ya he encontrado una solución ... Si alguien interesado, que es:

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

Respuesta

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

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

+0

Gracias. Por cierto, ¿hay algún análogo de C's #error en D por lo que puedo mostrar un error de tiempo de compilación en el caso "ninguno de los anteriores"? – szx

+2

Puede hacer 'static assert (0)' dentro del bloque 'else'. – You

+0

Lo que dijiste. : P –

Cuestiones relacionadas