gpt4 book ai didi

取决于 gcc 开关的条件代码

转载 作者:太空宇宙 更新时间:2023-11-04 07:57:28 28 4
gpt4 key购买 nike

我想使用基于 gcc 开关的 #if 指令交叉编译特定的 32 位和 64 位代码。

我可以使用 GCC 设置的任何宏来代替使用 -D 开关设置宏吗?

我能否以某种方式获取 gcc 命令选项中使用的开关以在预处理器阶段测试它们?

到目前为止,我发现 -m64 在我的 64 位机器上定义

   __x86_64__

而 -m32 取消定义

   __i386__ __i486__ __i586__ __i686__

最佳答案

你可以使用 INT_MAX来自 <limits.h> 的值.这是 C,所以独立于编译器。

您还可以检查https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html有一些其他基于编译器选项的预定义宏。

总的来说最近一段时间,推荐写代码可移植,也可以用if测试仅在特定架构上为真的条件。优化器将删除不需要的分支。

关于取决于 gcc 开关的条件代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49020637/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com