编译 C 或 C++ 代码时找出 CPU 架构最可靠的方法是什么?据我所知,不同的编译器有自己的一组非标准预处理器定义(MSVS中的 __i386__
_M_X86
__arm__
.
有没有一种 标准 的方法来检测我正在构建的架构?如果没有,是否有各种编译器的此类定义的完整列表的来源,例如带有所有样板的标头 #ifdef
s?
原文由 Alex B 发布,翻译遵循 CC BY-SA 4.0 许可协议
编译 C 或 C++ 代码时找出 CPU 架构最可靠的方法是什么?据我所知,不同的编译器有自己的一组非标准预处理器定义(MSVS中的 __i386__
_M_X86
__arm__
.
有没有一种 标准 的方法来检测我正在构建的架构?如果没有,是否有各种编译器的此类定义的完整列表的来源,例如带有所有样板的标头 #ifdef
s?
原文由 Alex B 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
这里 有
#define
的列表。之前有一个高度投票的答案包含此链接,但可能是由于 SO 的“答案必须有代码”规则而被 mod 删除。所以这里是一个随机样本。点击链接查看完整列表。AMD64
类型宏描述鉴别
__amd64__
__amd64
__x86_64__
__x86_64
由 GNU C 和 Sun Studio 定义鉴别_M_X64
_M_AMD64
由 Visual Studio 定义