- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言第八章ppt
目录 宏定义 文件包含 条件编译 概 述 编译预处理的概念 C语言允许在程序中使用几种特殊的命令(它们不是一般的C语句),在C编译系统对程序进行通常的编译之前,先对程序中这些特殊命令进行“预处理”,然后将预处理的结果和源程序一起再进行通常的编译处理,以得到目标代码。 主要预处理功能 宏定义 : #define PIE 3.1415926 文件包含 : #include stdio.h 条件编译: #ifdef DEBUG 1、宏定义 1)不带参数的宏定义:定义符号常量 不带参数的宏一般用于定义符号常量,以一简单名字代替一长字符序列。预编译时将程序中单独出现的宏名替换为字符序列,这个过程称为“宏展开” 可以用#undef命令终止宏定义的作用域 2)带参数的宏定义 #define PI 3.1415926 #define S(r) PI*r*r void main(){ float a,area; a=3.6; area = S(a); printf(r = %f\narea = %f\n,a,area); } 对带参数的宏展开只是将语句中宏名后面括号内的实参字符序列代替#define命令行中的形参 例3:分析程序写出结果 #define M 3 #define N M+2 #define S(N) N*N*N main(){ printf(“%d\n”,S(N));} #define PR printf #define NL \n #define D %d #define D1 D NL #define D2 D D NL #define D3 D D D NL #define D4 D D D D NL #define S %s void main(){ int a,b,c,d; char string[]=China; a=1;b=2;c=3;d=4; PR(D,a);PR(D2,a,b);PR(D3,a,b,c); PR(D4,a,b,c,d);PR(S,string); } 2、 文件包含 文件包含指一个源文件将另外一个源文件的全部内容包含进来,即将另外文件包含到本文件之中 一个#include命令只能包含一个头文件,若要包含n个头文件,需要使用n个#include命令 /*format.h*/ #define PR printf #define NL \n #define D %d #define D1 D NL #define D2 D D NL #define D3 D D D NL #define D4 D D D D NL #define S %s 3、条件编译 小结 预处理功能是C语言特有的功能,它是在对源程序正式编译前由预处理程序完成的。程序员在程序中用预处理命令来调用这些功能。 宏定义是用一个标识符来表示一个字符串,这个字符串可以是常量、变量或表达式。在宏调用中将用该字符串代换宏名。 宏定义可以带有参数,宏调用时是以实参代换形参。而不是“值传送”。 为了避免宏代换时发生错误,宏定义中的字符串应加括号,字符串中出现的形式参数两边也应加括号 文件包含是预处理的一个重要功能,它可用来把多个源文件连接成一个源文件进行编译,结果将生成一个目标文件。 条件编译允许只编译源程序中满足条件的程序段,使生成的目标程序较短,从而减少了内存的开销并提高了程序的效率。 宏定义应用扩展 定义宏LOWCASE,判断字符c是否为小写字母。 #define LOWCASE(c) (((c) = a) ((c) = z) ) 定义宏CTOD将数字字符(‘0’~‘9’)转换为相应的 十进制整数,-1表示出错。 #define CTOD(c) (((c) = 0) ((c) = 9) ? c - 0 : -1) #include format.h void main(){ int a,b,c,d; char string[]=China; a=1;b=2;c=3;d=4; PR(D1,a);PR(D2,a,b);PR(D3,a,b,c); PR(D4,a,b,c,d);PR(S,string); } 一般把被包含的文件称为“标题文件”或“头文件”,常以 .h 为其扩展名 头文件包含进来之后,形成一个文件,编译后得到一个 .obj 文件,而不是两个 例6: 在#inlcude命令中,文件名可以用双撇号或尖括号括起来 例: #include file2.h 或 #include file2.h 二者的作用不同 用尖括号形式时,系统到存放C库函数头文件所
您可能关注的文档
- 信息安全等级保护制度的主要内容和工作要求.ppt
- 第2章智能建筑信息传输网络基础原理.ppt
- 4.2学会沟通和交往.ppt
- 选择结构程序设计典型例题.ppt
- 第5章 函数的设计和使用.ppt
- LIS的系统设计.ppt
- 自考行政组织学复习题.ppt
- 计算机二级选择题知识点.docx
- 11 C语言与汇编语言的混合编程概述2.ppt
- 文件服务器的安装、配置与管理.ppt
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
文档评论(0)