我希望我的程序能够在32位和64位Linux操作系统上运行。所以在我的C代码中,我希望编译器知道何时编译32位和64位架构。所以,我需要类似的东西
#ifdef X64
...
#else
...
#endif
gcc 中是否有 define ?
答案 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上可能会失败。