如果有一些跨平台的 C/C++ 代码应该在 Mac OS X、iOS、Linux、Windows 上编译,我如何在预处理过程中可靠地检测到它们?
原文由 eonil 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果有一些跨平台的 C/C++ 代码应该在 Mac OS X、iOS、Linux、Windows 上编译,我如何在预处理过程中可靠地检测到它们?
原文由 eonil 发布,翻译遵循 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 阅读✓ 已解决
大多数编译器都使用预定义的宏,您可以在 此处 找到列表。 GCC 编译器预定义的宏可以在 这里 找到。这是 gcc 的示例:
定义的宏取决于您要使用的编译器。
The
_WIN64
#ifdef
can be nested into the_WIN32
#ifdef
because_WIN32
is even defined when targeting the Windows x64版本。如果某些标头包含对两者都是通用的,这可以防止代码重复(还有WIN32
没有下划线允许 IDE 突出显示正确的代码分区)。