码迷,mamicode.com
首页 > 其他好文 > 详细

用宏区分操作系统和编译器

时间:2015-06-04 12:12:51      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:

编译器
GCC

ifdef GNUC

if GNUC >= 3 // GCC3.0以上

Visual C++

ifdef _MSC_VER(非VC编译器很多地方也有定义)

if _MSC_VER >=1000 // VC++4.0以上

if _MSC_VER >=1100 // VC++5.0以上

if _MSC_VER >=1200 // VC++6.0以上

if _MSC_VER >=1300 // VC2003以上

if _MSC_VER >=1400 // VC2005以上
Borland C++

ifdef BORLANDC

UNIX
UNIX

ifdef __unix
or

ifdef unix

Linux

ifdef __linux
or

ifdef linux

FreeBSD

ifdef FreeBSD

NetBSD

ifdef NetBSD

Windows
32bit

ifdef _WIN32(或者WIN32)
64bit

ifdef _WIN64
GUI App

ifdef _WINDOWS
CUI App

ifdef _CONSOLE
Windows的Ver … WINVER
※ PC机Windows(95/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以上

Windows 95/98/Me的Ver … _WIN32_WINDOWS
MFC App、PC机上(Windows CE没有定义)

ifdef _WIN32_WINDOWS

if (_WIN32_WINDOWS >= 0x0400) // Windows 95以上

if (_WIN32_WINDOWS >= 0x0410) // Windows 98以上

if (_WIN32_WINDOWS >= 0x0500) // Windows Me以上

Windows NT的Ver … _WIN32_WINNT

if (_WIN32_WINNT >= 0x0500) // Windows 2000以上

if (_WIN32_WINNT >= 0x0501) // Windows XP以上

if (_WIN32_WINNT >= 0x0600) // Windows Vista以上

Windows CE(PocketPC)

ifdef _WIN32_WCE
Windows CE … WINCEOSVER
Windows CE
WCE_IF
Internet Explorer的Ver … _WIN32_IE
Cygwin
Cygwin

ifdef CYGWIN

32bit版Cygwin(现在好像还没有64bit版)

ifdef CYGWIN32

MinGW(-mno-cygwin指定)

ifdef MINGW32

原文地址:http://blog.csdn.net/immcss/article/details/3881827

用宏区分操作系统和编译器

标签:

原文地址:http://my.oschina.net/u/733649/blog/424604

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!