注册 登录
查看: 821|回复: 2

[其他] 【原创】用宏定义条件编译区分不同编译器

[复制链接]
发表于 2013-8-3 23:29:49 | 显示全部楼层 |阅读模式
本帖最后由 风落小鱼 于 2013-8-3 23:30 编辑

本帖子未经允许,禁止转载


如果写过多个编译器的代码,就知道有些代码,不同编译器不兼容,因此需要利用宏定义的条件编译功能来区分不同的编译器,从而使得代码能在不同的编译器下继续使用


IAR EWARM :__ICCARM__
ARM RealView(MDK ): __CC_ARM

GNU Compiler Collection (gcc) :__GNUC__
TASKING Compiler:__TASKING__
Borland C++:__BORLANDC__
Cygwin:__CYGWIN__  或者 __CYGWIN32__
MinGW:__MINGW32__

Visual C++ 用 _MSC_VER 来表示(不过非VC也有很多地方用它)
_MSC_VER >=1000   VC++4.0以上
_MSC_VER >=1100   VC++5.0以上
_MSC_VER >=1200   VC++6.0以上
_MSC_VER >=1300   VC2003(7.0)以上
_MSC_VER >=1400   VC2005(8.0)以上
_MSC_VER >=1500   VC2008(9.0)以上
_MSC_VER >=1600   VC2010(10.0)以上
_MSC_VER >=1700   VC2011(11.0)以上  
回复

使用道具 举报

发表于 2013-9-22 10:23:18 | 显示全部楼层
写底层驱动人的,肯定知道这是好东西
回复 支持 反对

使用道具 举报

发表于 2014-2-25 19:48:26 | 显示全部楼层
哇,原来,IAR和MDK不会冲突,谢谢楼主强烈支持,非常感谢哥们强烈支持,非常感谢哥们
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部