常见的条件编译

背景:

  有些程序由于需求不一致,因而需要编译成不同版本的烧录文件,以屏幕为例,有各种尺寸的屏幕,其驱动文件几乎不一样,若是因为屏幕不一样而特意另外写一版软体,不仅麻烦而且不便于版本管理。因此条件编译在此处即可大显身手。

 正文:

1、#if, #elif, #else, #endif条件编译。

#if 条件 1
 代码段 1
#elif 条件 2
   代码段 2
...
#elif 条件 n
 代码段 n
#else
 代码段 n+1
#endif

此含义既是:#if后面的常量表达式为“true”时,则编译其控制的代码段。

即,条件1成立,则编译代码段1,条件1不成立,条件2成立,则编译代码段2······

2、#ifdef, #else, #endif或#ifndef, #else, #endif条件编译

#ifdef macro_name
代码段 1
#else
代码段 2
#endif
或
#ifndef macro_name
代码段 2
#else
代码段 1
#endif

配合宏定义“#define”以上两段需要编译的代码段为相同代码段。(可在其它文件中define,但一定需要在此条件编译前define)

字如其意,如果#define macro_name,则编译代码段1,若是未定义,则编译代码段2。

 

3、还有一种被称之为宏函数条件编译,我倒觉得是#if的扩充罢了,即#if define(macro_name),若是defined了macro_name,则函数define(macro_name)返回真,否则返回假。用法其实和#if一个意思。

欲知更详细的解释,请跳转至我参考的文章链接,那有更加详细的讲解。

参考文章链接:http://blog.chinaunix.net/uid-20801390-id-3123529.html

 

记录地点:深圳WZ

记录时间:2016年3月23日

 

转载于:https://www.cnblogs.com/ChYQ/p/5310078.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值