我想仅在x86和x86_64 linux上编译我的部分代码,而不是s390 linux或其他.如何在C中使用宏定义来实现呢?我知道linux的是要确定Linux操作系统,以及386,486和586,以确定CPU架构.是否有一个简单的宏定义来确定x86 linux和x86_64 linux?谢谢
Dav*_*zer 13
您可以轻松检测是否处于64位模式:
#if defined(__x86_64__)
/* 64 bit detected */
#endif
#if defined(__i386__)
/* 32 bit x86 detected */
#endif
Run Code Online (Sandbox Code Playgroud)
如果您的编译器没有提供预定义的宏和常量,您可以自己定义:gcc -D WHATEVER_YOU_WANT。
额外的奖励:如果您编译代码,例如,amd64但没有定义amd64,您可以比较结果(使用amd64特定部分的版本与通用版本)并查看您的amd64优化是否值得付出努力。
| 归档时间: |
|
| 查看次数: |
4284 次 |
| 最近记录: |