检测 CPU 架构编译时

新手上路,请多包涵

编译 C 或 C++ 代码时找出 CPU 架构最可靠的方法是什么?据我所知,不同的编译器有自己的一组非标准预处理器定义(MSVS中的 __i386__ _M_X86 __arm__ .

有没有一种 标准 的方法来检测我正在构建的架构?如果没有,是否有各种编译器的此类定义的完整列表的来源,例如带有所有样板的标头 #ifdef s?

原文由 Alex B 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 871
1 个回答

这里#define 的列表。之前有一个高度投票的答案包含此链接,但可能是由于 SO 的“答案必须有代码”规则而被 mod 删除。所以这里是一个随机样本。点击链接查看完整列表。

AMD64

类型宏描述鉴别__amd64__ __amd64 __x86_64__ __x86_64由 GNU C 和 Sun Studio 定义鉴别_M_X64 _M_AMD64由 Visual Studio 定义

原文由 Timmmm 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏