常用的 预定义宏

http://blog.csdn.net/code09/article/details/5358165

 

一、介绍预定义宏 "_MSC_VER"
      1、_MSC_VER是微软C/C++编译器——cl.exe编 译代码时预定义的一个宏。需要针对cl编写代码时, 可以使用该宏进行条件编译。
      2、_MSC_VER的值表示cl的版本。需要针对cl特定版本编写代码时, 也可以使用该宏进行条件编译。
      3、_MSC_VER的类型是"int",具体版本号定义如下:

  MS VC++ 9.0 _MSC_VER = 1500
  MS VC++ 8.0 _MSC_VER = 1400
  MS VC++ 7.1 _MSC_VER = 1310
  MS VC++ 7.0 _MSC_VER = 1300
  MS VC++ 6.0 _MSC_VER = 1200
  MS VC++ 5.0 _MSC_VER = 1100
  其中MS VC++ 9.0就是Visual C++ 2008,MS VC++ 8.0就是Visual C++ 2005。

二、介绍预定义宏“__GNUC__”
1、__GNUC__ 是gcc编译器编译代码时预定义的一个宏。需要针对gcc编写代码时, 可以使用该宏进行条件编译。
     2、__GNUC__ 的值表示gcc的版本。需要针对gcc特定版本编写代码时,也可以使用该宏进行条件编译。
     3、__GNUC__ 的类型是“int”

三、预定义宏"__MINGW32__"

     1、MinGW编译器

四、symbian sdk预定义宏:

     symbian平台,定义"__SYMBIAN32_"

     3rd MR版及之前的那个3rd版本,定义"__SERIES60_30__"
     3rd FP1版,定义"__SERIES60_31__" 
     3rd FP2版,定义"__SERIES60_32__"
      另外,还有一个"__SERIES60_3x__"。若不需区分具体是哪一个3rd版,则用之。

#if defined(_MSC_VER)
    #if _MSC_VER<=1200 //before vc6 (VC6不支持不定参数宏)
    #define os_printf(s)    printf##s
    #else //after vc6
    #define os_printf(fmt,...)    printf(fmt,__VA_ARGS__)
    #endif //_MSC_VER<=1200
#endif //_MSC_VER

#if defined(__GUNC__) //以下两种定义都可以
#define os_printf(fmt,arg...) printf(fmt,##arg)
#define os_printf(fmt,...) printf(fmt,##__VA_ARGS__)
#endif //__GUNC__

#if defined(__MINGW32__)
#endif //__MINGW32__

#define os_print_a0    os_printf   

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值