确定D中的CPU架构

szx*_*szx 6 d header

我有一个C头文件(它是某些SDK的一部分),并且有一个取决于系统架构的typedef(无论是32位还是64位),如何将其传输到我的D模块?谢谢.

编辑:好的,这太简单了,我已经找到了解决方案......如果有人感兴趣,那就是:

version(X86) {
  typedef int your_type;
}
version(X86_64) {
  typedef long your_type;
}
Run Code Online (Sandbox Code Playgroud)

Vla*_*eev 9

version(X86)
{
    // 32-bit
}
else
version(X86_64)
{
    // 64-bit
}
else
{
    // none of the above
}
Run Code Online (Sandbox Code Playgroud)

资料来源:http://digitalmars.com/d/2.0/version.html

  • static assert(false,"message"); 可能是最好的选择.您也可以在不杀死编译的情况下打印消息:pragma(msg,"Message"); (3认同)
  • 你可以在`else`块里面做`static assert(0)`. (2认同)