“21天好习惯“第一期-12

“21天好习惯“第一期-12
条件编译

在C语言中,如果需要对程序中的一些代码段进行选择性的编译,就需要用到条件编译的命令,条件编译的格式有以下几种:

⑴ #if…#else…格式

#if 判断条件
代码段1
#else
代码段2
#endif
或者

#if 判断条件1
代码段1
#elif 判断条件2
代码段2
#else
代码段3
#endif
功能:和if…else…表达式是一样的。适用的场景是存在真假的判断条件,此条件一般情况下是一个表达式。

⑵ #ifdef…#else…或者#ifndef…#else…格式

#ifdef 标识符
代码段1
#else
代码段2
#endif

或者

#ifndef 标识符
代码段1
#else
代码段2
#endif

功能:判断条件主要是查看标识符是否被定义(#define定义)。

在现实的工程项目中会使用大量的条件编译。比如说通过条件编译来使用各个不同的硬件平台;通过条件编译来实现平台和产品线管理;通过条件编译来区分正式版本和调试版本等等。

条件编译的本质是选择性的编译,其意义在于:

⑴ 增加代码的兼容性,一套代码兼容多个硬件平台或者软件平台;

⑵ 区分产品的调试版本和正式发布版本;

⑶ 不同的产品线共用代码,使用条件编译来产生适用不同产品的目标文件;

⑷ 同时也为程序员提供了一种屏蔽代码块的方式 #if 0….#endif。

理论上来说,条件编译是在预编译的时候生效的,但是我们不要就认为编译好了之后,条件编译就是不起作用了。其实对于第一种形式的条件编译在程序运行中也是有效的。即如果在运行中通过某些触发条件来修改条件编译判断条件的运算结果,也是可以完成实际执行代码段的切换。其实这样的做法在很多的产品中运用,即通过某些设置开关来开启和关闭一些功能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值