预处理器宏以检查具有一个条件的 x64 平台?



在C项目中,在某些地方,我想编译不同的代码,具体取决于编译是否发生在x64。当然,CPP宏是要走的路。

但是,在此页面上(应该是权威参考),没有专门针对 x64 的预定义宏。

出于好奇,我错过了什么吗?

我知道我可以轻松解决实际问题:

首先,根据上面的参考,如果我想坚持使用预定义的宏,我可以做这样的事情:

#if defined (_M_AMD64) && (_M_AMD64 == 100) && !defined (_M_ARM64EC)
....
#endif

前两个条件确保我们为x64arm64ec编译,第三个条件确保我们不为arm64ec编译,这应该确保我们为x64编译。

其次,我可以在 x64 配置的项目设置中定义自己的宏,并使用它而不是预定义的宏:

#ifdef MY_OWN_X64_FLAG
...
#endif

虽然它们解决了问题,但这两种方法都不直观和优雅。真的没有预定义的宏可以用来测试x64只有一个简单的#ifdef吗?

我错过了什么吗?

不。

真的没有预定义的宏可以用来测试x6 #ifdef 4吗?

是的,根据您自己的研究和链接的文档,实际上没有预定义的宏可以通过该编译器上的一个简单 #ifdef 来测试x86_64。

相关内容

  • 没有找到相关文章

最新更新