+-
c-如何判断程序是否在x86 / x64或ARM Linux平台上运行
在C程序中,我想做不同的事情.该程序将在基于x86 / x64的GNU / Linux系统以及基于ARM的系统上运行,例如在PC或RaspberryPI上.

GCC中是否有预定义的宏可以告诉平台?

就像是

#ifdef _X64_
   /do x64 stuff
#elif _ARM_
//do arm stuff
#endif

也许那是错误的方法?我将使用Makefile进行编译,并且可以摆脱自己的定义.

最好/最安全的方法是什么?

最佳答案
这些帖子已经回答了:
GCC predefined macros for architecture X、 Detecting CPU architecture compile-time

您可以在这里拥有它们:
http://sourceforge.net/p/predef/wiki/Architectures/

您的方法仅应用于一小部分代码或函数,但应可以使用.

编辑:
基本上,因为链接可能变得无效:
__arm__应该适用于ARM.
__x86_64__应该适用于x64体系结构.

是的,您可以执行以下操作:

#ifdef __x86_64__    
    // do x64 stuff   
#elif __arm__    
    // do arm stuff
#endif    
点击查看更多相关文章

转载注明原文:c-如何判断程序是否在x86 / x64或ARM Linux平台上运行 - 乐贴网