foreach和while的区别(编译之后)_C++学习大纲:条件编译
C++条件编译
条件编译:
一般情况下,源程序中所有的行都参加编译。但有时希望对其中一部分内容只在满足一定条件下才进行编译,即对一部分内容指定编译条件,这就是“条件编译”(conditional compile)。
常用形式:
条件编译命令常用的有以下形式:
(1)
#ifdef 标识符
程序段1
#else
程序段2
#endif
它的作用是当所指定的标识符已经被#define命令定义过,则在程序编译阶段只编译程序段1,否则只编译程序段2。#endif用来限定#ifdef命令的范围。其中,#else部分也可以没有。
(2)
#ifndef 标识符
程序段1
#else
程序段2
#endif
它的作用是当所指定的标识符没有被#define命令定义过,则在程序编译阶段只编译程序段1,否则只编译程序段2。这种形式与第一种形式的作用相反。
(3)
#if 表达式
程序段1
#else
程序段2
#endif
它的作用是当所指定的标识符值为真(非零)时,则在程序编译阶段只编译程序段1,否则只编译程序段2。可以事先给定一定条件,使程序在不同的条件下执行不同的功能。
例子:
题目:输入一个字母字符,使之条件编译,使之能根据需要将小写字母转化为大写字母输出,或将大写字母转化为小写字母输出。
代码1
#includeusing namespace std;#define upper 1int main(){char a; #if upper cout<>a; if(a>='a'&&a<='z') { cout>a;if(a>='A'&&a<='Z') { cout
代码2:
#includeusing namespace std;#define upper 0int main(){ char a; #if upper cout<>a;if(a>='a'&&a<='z') { cout>a; if(a>='A'&&a<='Z') { cout
分析:
代码1和代码2的区别是upper的值分别是1和0,运行结果也证明了分别编译了语句段1和语句段2。
cout<
这个语句是在#endif之后的语句,这说明#endif只是表示了#if——#else语句的结束,而不是编译的结束,也就是说#endif之后的语句都会正常的编译和执行。
通过分享实用的计算机编程语言干货,推动中国编程到2025年基本实现普及化,使编程变得全民皆知,最终实现中国编程之崛起,这里是中国编程2025,感谢大家的支持。
foreach和while的区别(编译之后)_C++学习大纲:条件编译相关推荐
- foreach和while的区别(编译之后)_一文了解解释型语言和编译型语言之区别
引言 我们学了这么久的编程,做了那么多的项目,但总有那么一些概念即模糊又清晰,比如我们今天要细谈的解释型语言和编译型语言. 何谓解释?何谓编译? 这一切要从我们学习C语言的时候开始. 所有学过C语 ...
- 在保护继承中基类的共有成员_C++学习大纲:继承方式的调整
C++ 继承方式的调整 在任何继承方式中,除了基类的private成员外,都可以在派生类中分别调整其访问控制. 调整格式 [public: | protected: | private: ] :: ; ...
- struct类型重定义 不同的基类型_C++学习大纲:联合类型
C++联合类型 联合类型(又称共同体类型),一种能够表示多种数据(类型可以相同可以不同,变量名字不同就行)的数据类型. 1. 联合类型的定义 union {}; 与结构类型类似,只是把struct 换 ...
- [JS] for-each和map()的区别
先说下for-each与for-of还有for-in的区别. for-of和for-in都是对对象操作的,而for-each和map()是对数组进行操作的. for-in的使用:对于一个数组里的每一个 ...
- php in循环与for循环,详谈js中标准for循环与foreach(for in)的区别
js中遍历数组的有两种方式 var array=['a'] //标准的for循环 for(var i=1;i alert(array[i]) } //foreach循环 for(var i in ar ...
- JS数组中 forEach() 和 map() 的区别
JS数组中 forEach() 和 map() 的区别 Array中 Array.forEach()和 Array.map()方法之间的区别. forEach()和map()方法通常用于遍历Array ...
- foreach和volist的区别
foreach和volist的区别 1.foreach标签 foreach标签用于循环输出: foreach(name,item,key) name(必须):要输出的数据模板变量 item(必须):循 ...
- vue forEach和map的区别
记录工作中遇到的问题,选择右边数组一项进行删除,forEach和map的区别就出来了 1.刚开始是foreach写的,效果没出来 this.rightTree:表示右边的数组this.oriFathe ...
- 【C 语言】编译过程 分析 ( 预处理 | 编译 | 汇编 | 链接 | 宏定义 | 条件编译 | 编译器指示字 )
相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...
最新文章
- VS2010 调用RFC 时注意(.net4.0) 使用nco
- 怎么添加本地音乐_展示 | 传一学员优秀项目之音乐播放器
- System类+Math类+Arrays类
- Winform-图片上传
- 【nodejs原理源码赏析(4)】深度剖析cluster模块源码与node.js多线程(上)
- sqlserver有外键无法创建触发器_数据库不使用外键的 9 个理由
- linux 远程桌面 命令,linux 命令 远程连接
- python毕业设计作品基于django框架外卖点餐系统毕设成品(6)开题答辩PPT
- Element 表单样式调整
- 考研数学 【数列极限证明题】题型方法总结
- LCD驱动芯片HT16c21使用注意事项
- 希腊计数法罗马计数法
- ubuntu16.04下摄像头驱动
- Chrome 插件下载网站+6个实用插件推荐
- Aras Innovator: 扩展Part类型,管理更多的物体类型
- 文件打开模式r,w,a,r+,w+,a+的区别和联系
- sklearn.LabelEncoder解决未见过值问题ValueError y contains previously unseen labels [69]
- php 时间戳 最大,PHP中大于2038年时间戳的问题处理
- 智能车|直流电机、编码器与驱动器---减速器
- ImportError: No module named 'win32api'
热门文章
- JVM虚拟机-Class文件之访问标志
- 网络(13)-SYN flood及其应对方法
- java三个取最大值、菜单新增修改、猜数字大小
- [C#.NET通用权限管里系统组件]对资源权限、列表型、记录级权限、数据集权限的实现参考...
- SerializeUtil 序列化 java
- Windows下Java调用BAT批处理不弹出cmd窗口
- css 总结内容用到的绝对居中的几种方式
- Java Servlet(六):HttpServlet实现原理(jdk7+tomcat7+eclipse)
- 华为4X和4C无法使用电信4G的解决办法
- 循环队列(循环数组)中元素个数的计算