伪指令,条件编译,#if,#ifdef,#ifndef,#elif,#else,#endif,defined等,以及作用:

伪指令,条件编译,#if,#ifdef,#ifndef,#elif,#else,#endif,defined等,以及作用:

使用条件编译可以控制预处理器选择不同的代码段作为编译器的输入,使源代码在不同的编译条件下产生不同的代码。

平时在代码中常见的if,else if的语句,是在程序运行时的判断语句,用来决定程序的运行方向。
条件编译伪指令是在代码编译成可执行文件时的判断语句,用来决定哪些代码被编译。

条件编译为程序的移植和调试带来了极大的方便,因为在不同平台下的c/c++代码是不同的,但语言的运行逻辑和数据结构等部分没有什么区别,只是关键字和一些API上有可能因系统不同或其他不同而带来差异,此时使用条件编译暂时或永久性的编译一段代码和阻止另一段代码的编译,就可以完成在不同平台上的移植。

条件编译的伪指令主要包括:
#if,#ifdef,#ifndef,#elif,#else,#endif,defined等。

注意:
1、每个条件编译块以#if开始,以#if开始,以#endif结束,每个#if下面必须与它下面的某一个#endif配对。
2、defined必须结合#if和#elif使用,不能单独使用。
3、条件编译块可以出现在代码的任何地方。
编程过程中需要暂时放弃编译一段代码时,就可以使用条件编译伪指令#if来屏蔽这段代码,例如:
#if 0
//此处代码被禁止编译
//此处代码被禁止编译
#endif
想要使这段代码生效,被编译,只需要把0改为任何非0值。

条件编译有预处理器处理,由于伪指令无法处理有变量参与的表达式计算,所以只能使用0,1,2这样的常量,使用时,0为假,非0为真,又称“非0即1”。
条件编译中的#if虽然不能计算表达式,但是可以进行==的判断,可以对定义的宏是否相等进行判断。
例如:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值