大型网站 中小型网站,网站管理入口,WordPress安全社区,做淘宝门头的网站目录
1. 判断编译器类型#xff1a;
2. 判断编译器版本#xff1a;
3. 判断操作系统#xff1a;
总结#xff1a; 1. 判断编译器类型#xff1a;
可以使用预定义的宏来判断编译器类型。例如#xff0c;__GNUC__ 宏用于判断是否使用了GCC 编译器#xff0c;_MSC_VER…目录
1. 判断编译器类型
2. 判断编译器版本
3. 判断操作系统
总结 1. 判断编译器类型
可以使用预定义的宏来判断编译器类型。例如__GNUC__ 宏用于判断是否使用了GCC 编译器_MSC_VER 宏用于判断是否使用了MSVC 编译器。
#ifdef __GNUC__// 使用了GCC编译器// 可以在这里添加相应的代码
#elif defined(_MSC_VER)// 使用了MSVC编译器// 可以在这里添加相应的代码
#else// 其他编译器// 可以在这里添加相应的代码
#endif2. 判断编译器版本
要判断编译器的版本可以使用预定义的宏或条件编译指令具体取决于使用的编译器。以下是示例代码用于判断GCC和MSVC编译器的版本
#ifdef __GNUC__// 使用了GCC编译器#if __GNUC__ 7// GCC版本大于等于7#else// GCC版本小于7#endif
#elif defined(_MSC_VER)// 使用了MSVC编译器#if _MSC_VER 1920// MSVC版本大于等于2019版本号1920对应于MSVC 2019#else// MSVC版本小于2019#endif
#else// 其他编译器
#endif3. 判断操作系统
要判断操作系统可以使用预定义的宏如 __linux__、_WIN32、_WIN64 等。以下是示例代码用于判断操作系统类型
#ifdef __linux__// Linux操作系统
#elif defined(_WIN32) || defined(_WIN64)// Windows操作系统
#else// 其他操作系统
#endif总结
//GCC编译器
#ifdef __GNUC__
#if __GNUC__ 3 // GCC3.0 以上//MSVC编译器
#ifdef _MSC_VER
#if _MSC_VER 1000 // VC4.0 以上
#if _MSC_VER 1100 // VC5.0 以上
#if _MSC_VER 1200 // VC6.0 以上
#if _MSC_VER 1300 // VC2003 以上
#if _MSC_VER 1400 // VC2005 以上
#if _MSC_VER 1500 // VC2008 以上
#if _MSC_VER 1600 // VC2010 以上
#if _MSC_VER 1700 // VC2012 以上
#if _MSC_VER 1800 // VC2013 以上
#if _MSC_VER 1900 // VC2015 以上//Visual Studio版本与MSVC版本号的对应关系
MSC 1.0 _MSC_VER 100
MSC 2.0 _MSC_VER 200
MSC 3.0 _MSC_VER 300
MSC 4.0 _MSC_VER 400
MSC 5.0 _MSC_VER 500
MSC 6.0 _MSC_VER 600
MSC 7.0 _MSC_VER 700
MSVC 1.0 _MSC_VER 800
MSVC 2.0 _MSC_VER 900
MSVC 4.0 _MSC_VER 1000 (Developer Studio 4.0)
MSVC 4.2 _MSC_VER 1020 (Developer Studio 4.2)
MSVC 5.0 _MSC_VER 1100 (Visual Studio 97 version 5.0)
MSVC 6.0 _MSC_VER 1200 (Visual Studio 6.0 version 6.0)
MSVC 7.0 _MSC_VER 1300 (Visual Studio .NET 2002 version 7.0)
MSVC 7.1 _MSC_VER 1310 (Visual Studio .NET 2003 version 7.1)
MSVC 8.0 _MSC_VER 1400 (Visual Studio 2005 version 8.0)
MSVC 9.0 _MSC_VER 1500 (Visual Studio 2008 version 9.0)
MSVC 10.0 _MSC_VER 1600 (Visual Studio 2010 version 10.0)
MSVC 11.0 _MSC_VER 1700 (Visual Studio 2012 version 11.0)
MSVC 12.0 _MSC_VER 1800 (Visual Studio 2013 version 12.0)
MSVC 14.0 _MSC_VER 1900 (Visual Studio 2015 version 14.0)
MSVC 14.1 _MSC_VER 1910 (Visual Studio 2017 version 15.0)
MSVC 14.11 _MSC_VER 1911 (Visual Studio 2017 version 15.3)
MSVC 14.12 _MSC_VER 1912 (Visual Studio 2017 version 15.5)
MSVC 14.13 _MSC_VER 1913 (Visual Studio 2017 version 15.6)
MSVC 14.14 _MSC_VER 1914 (Visual Studio 2017 version 15.7)
MSVC 14.15 _MSC_VER 1915 (Visual Studio 2017 version 15.8)
MSVC 14.16 _MSC_VER 1916 (Visual Studio 2017 version 15.9)
MSVC 14.2 _MSC_VER 1920 (Visual Studio 2019 Version 16.0)
MSVC 14.21 _MSC_VER 1921 (Visual Studio 2019 Version 16.1)
MSVC 14.22 _MSC_VER 1922 (Visual Studio 2019 Version 16.2)
MSVC 14.30 _MSC_VER 1930 (Visual Studio 2022 Version 17.0)
MSVC 14.31 _MSC_VER 1931 (Visual Studio 2022 Version 17.1)
MSVC 14.32 _MSC_VER 1932 (Visual Studio 2022 Version 17.2)//Borland C
#ifdef __BORLANDC__//Cygwin
#ifdef __CYGWIN__
#ifdef __CYGWIN32__//mingw
#ifdef __MINGW32__//windows
#ifdef _WIN32 //32bit
#ifdef _WIN64 //64bit
#ifdef _WINDOWS //图形界面程序
#ifdef _CONSOLE //控制台程序//Windows95/98/Me/NT/2000/XP/Vista和Windows CE都定义了
#if (WINVER 0x030a) // Windows 3.1以上
#if (WINVER 0x0400) // Windows 95/NT4.0以上
#if (WINVER 0x0410) // Windows 98以上
#if (WINVER 0x0500) // Windows Me/2000以上
#if (WINVER 0x0501) // Windows XP以上
#if (WINVER 0x0600) // Windows Vista以上//_WIN32_WINNT 内核版本
#if (_WIN32_WINNT 0x0500) // Windows 2000以上
#if (_WIN32_WINNT 0x0501) // Windows XP以上
#if (_WIN32_WINNT 0x0600) // Windows Vista以上