Windows下宏定义
常量\定义 | 预定义选项 | Windows.h文件 | VC编译器 |
WIN32 | √ | √(minwindef.h) | × |
_WIN32 | × | × | x86和x64环境都定义 |
_WIN64 | × | × | x64环境下定义 |
由于MingW编译器只支持x86编译经测试MingW编译器也会定义_WIN32宏,MinGW-w64支持x86和x64编译,未测试是否支持
_WIN64宏
#ifdef _WIN32
//windows平台 x86 or x68
#ifdef _WIN64
//x64
#else
//x86
#endif //_WIN64
#else
//unix
#endif //_WIN32
Linux下判断方法
//方式一
#ifdef __x86_64__
//x64
#elif __i386__
//x86
#endif
//方式二,还支持一些嵌入式环境如海思
#if __WORDSIZE == 64
//x64
#elif __WORDSIZE == 32
//x86
#elif __WORDSIZE == 16
//x16
#endif
//以下宏g++下可用,gcc不行
#ifdef linux
//linux
#endif
#ifdef unix
//unix
#endif
编译器判断
#ifdef _MSC_VER
//vc编译器
#elif __GNUC__
//gcc or g++
#endif