- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c第06章编译预处理
目 录 第1章 C++概述 第2章 数据类型、运算符和表达式 第3章 简单的输入/输出 第4章 C++的流程控制 第5章 函数 第6章 编译预处理 第7章 数组 第8章 结构体、共同体和枚举类型 第9章 指针和引用 第10章 类和对象 第11章 类和对象的其他特性 第12章 继承和派生 第13章 多态性 第14章 输入/输出流 第15章 模板 第6章 编译预处理 本章要点 了解带参的宏定义和不带参的宏定义 了解文件包含及使用方法 自学条件编译在程序设计中的使用 主要内容 概述 宏定义 文件包含 条件编译(自学) 编译预处理 编译预处理:编译器在对源程序正式编译之前,对源程序进行的文字上的处理工作。 编译预处理 三种预处理 宏定义 文件包含 条件编译(自学) 不带参数的宏定义 #define PI 3.1415926 不带参数的宏定义例 #include iostream.h//li0601.cpp 不带参数的宏定义 #define PI 3.1415926 void main( ) { double l,s,r,v; coutinput radius :; cinr; l=2.0*PI*r; s=PI*r*r; v=4.0/3*PI*r*r*r; cout周长为:l\n面积为:s\n体积为:v\n; } 说明 一般用大写字母表示宏名 减少程序中的重复书写,提高通用性 如:#define array_size 100 int array[array_size]; 说明 宏定义时,可引用已定义的宏名 带参数的宏定义 格式:#define 宏名(参数表) 字符串 例 #define s(a,b) a*b … area=s(2,3); 带参数的宏定义例 #include iostream.h//bc0601.cpp #define PI 3.1415926 #define S(r) PI*r*r void main( ) { float a,area; a=3.6; area=S(a); coutr=a\narea=areaendl; } 注意 ①可以嵌套定义宏 例: #define MAX2(a,b) ( (a)(b)?(a):(b) ) #define MAX4(a,b,c,d) MAX2( MAX2(a,b),MAX2(c,d) )√ ②不允许递归定义 例: #define fac(n) n=1 ? 1 : n*fac(n-1) × 文件包含 作用:让编译预处理器把另一个源文件嵌入(包含)到当前源文件中的该指令处。 一般形式 文件包含命令格式如下: ① #include 文件名 或 ② #include 文件名 包含处理的例子 条件编译的几种形式 形式1 #ifdef 标识符 程序段1 [#else 程序段2] #endif 条件编译的几种形式 形式2 #ifndef 标识符 程序段1 [#else 程序段2] #endif 几种形式 形式3 #if 表达式 /*或#if(表达式)*/ 程序段1 [#else 程序段2] #endif 例 #include iostream.h #define LETTER 0 void main( ) { char str[20]=C Language,c; int i=0; while ((c=str[i])!=\0) { i++; #if LETTER if (c=a c=z) c=c-32; #else if (c=Ac=Z) c=c+32; #endif coutc; } coutendl; } 小结 掌握宏定义的方法 掌握文件包含处理方法 自学条件编译的方法 * * 第一部分 面向过程的程序设计 第二部分 面向对象的程序设计 预处理1 预处理2 编译 f.cpp f .cpp f .cpp 内容 变化 内容 变化 连接 f.obj f.exe “预处理”命令行 以“#”开头 末尾不加“;” 可以放在程序的任何位置 标识符 字符串 l=2.0*3.1415926*r; s= 3.1415926 *r*r; v=4.0/3* 3.1415926 *r*r*r; 宏代换后 便于修改
文档评论(0)