gcc中是否有64位的定义

时间:2011-08-04 15:08:39

标签: c 32bit-64bit

  

可能重复:
  Detecting 64bit compile in C

我希望我的程序能够在32位和64位Linux操作系统上运行。所以在我的C代码中,我希望编译器知道何时编译32位和64位架构。所以,我需要类似的东西

#ifdef X64
...
#else
...
#endif

gcc 中是否有 define

3 个答案:

答案 0 :(得分:10)

我知道这些:

__i386__    
__x86_64__  

我不知道他们有多可靠。

最好的选择是在编译32位并在代码上检查-DMY_32BIT时将MY_32BIT添加到Makefile的编译行。这样你就可以肯定了。

答案 1 :(得分:3)

here

#ifdef __x86_64
...
#endif

答案 2 :(得分:3)

limits.h中有__WORDSIZE:

#include <limits.h>
#if ( __WORDSIZE == 64 )
#define BUILD_64   1
#endif

这是相对便携的(由于POSIX),但在不明显的环境或Windows上可能会失败。