6.4 C++条件编译 | 条件编译

举报
C语言入门到精通 发表于 2021/02/18 01:43:08 2021/02/18
【摘要】 C++条件编译在C++中,在进行编译时对源程序中的每一行都要编译,但是有时希望程序中某一部分内容只在满 足一定条件时才进行编译,也就是指定对程序中的 一部分内容进行编译的条件,如果不满足这个条 件,就不编译这部分内容,这就是条件编译。条件编译命令常用的有以下形式:#ifdef 标识符 程序段1 #else 程序段2 #endif 上述条件编译的作用是当所指定的标识符已经被#...

C++条件编译

在C++中,在进行编译时对源程序中的每一行都要编译,但是有时希望程序中某一部分内容只在满 足一定条件时才进行编译,也就是指定对程序中的 一部分内容进行编译的条件,如果不满足这个条 件,就不编译这部分内容,这就是条件编译。

条件编译命令常用的有以下形式:

#ifdef 标识符
 程序段1
#else
 程序段2
#endif

上述条件编译的作用是当所指定的标识符已经被#define命令定义过,则在程序编译阶段只编译程序段1,否则编译程序段2,#endif用来限定#ifdef命令的范围,其中#else部分也可以不写。

#if 表达式
 程序段1
#else
 程序段2
#endif

上述条件编译的作用是当指定的表达式值为真时就编译程序段1,否则编译程序段2。

经典案例:在C++中使用条件编译。

#include<iostream>//预处理
#define NOTES//在调试时使之为注释行 
using namespace std;//命名空间 
int main()//主函数 
{
  int numX,numY,numZ,area;//定义变量 
  numX=3;//给numX赋值 
  numY=2;//给numY赋值 
  numZ=1;//给numZ赋值 
  #ifdef NOTES //件编译命令 
  cout<<numX<<numY<<numZ<<endl;//调试时输出的 
  #endif //件编译命令 
  area=numX*numY*numZ;
  cout<<area;
  return 0;//函数返回值为0 
}

执行本程序之后,会输出:

321
6
--------------------------------
Process exited after 1.989 seconds with return value 0
请按任意键继续. . .
6.4 C++条件编译 mp.weixin.qq.com图标

文章来源: zhuanlan.zhihu.com,作者:小林C语言,版权归原作者所有,如需转载,请联系作者。

原文链接:zhuanlan.zhihu.com/p/326963238

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。