- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
10预处理
2000年1月25日 北京理工大学 / 预处理: 在词法扫描和语法分析之前所做的工作。 编译预处理: 在源程序编译前处理的命令。 10.1文件包含 格式1: #include 文件名 格式2: #include 文件名 例如:调用sin(x) 函数时,要在程序的开头使用如下命令: #include math.h 在预处理时,用math.h文件内容替换 #include math.h命令行。 10.2 不带参数宏定义 ②为了增加程序的可读性,建议宏名用大写字母,其他的标识符用小写字母。 ③双引号中有与宏名相同的字符串不进行替换。 ④已经定义的宏名可以被后定义的宏名引用。在预处理时将层层进行替换。 例.不带参数的宏定义。 源程序: #define PI 3.14 #define S PI*r*r #define V 4*S*r/3 main( ) { float r; printf(\nInput r:); scanf(%f,r); printf(S=%.2f V=%.2f\n,S,V); } 10.3 带参数的宏定义 #includestdio.h #define MIN(x,y) (x)(y)?(x):(y) main() { printf(%d\n, 10*MIN(10,15)); } A. 15 B. 100 C. 10 D. 150 北京理工大学 / 第10章 编译预处理 10.1 #include 文件包含处理 10.2 #define宏定义 由预处理程序完成 宏定义 文件包含 条件编译 C源程序 .c文件 目标程序 .OBJ文件 可执行程序 .exe文件 结 果 编辑 编译 连接 运行 编译 出错 连接 出错 运行 出错 开发C程序的步骤 将目标程序、库函数或其他目标程序连接成一个可执行文件 对源文件进行语法和逻辑结构检查 编译预处理包括: 宏定义 文件包含 条件编译 预编译 文件包含是将指定的某个源文件的内容全部包含到当前文件中。用include命令实现。 用格式1,系统首先到当前目录下查找被包含文件,若没有找到,再到系统指定的“包含文件目录”查找。 用格式2,预处理程序直接到“包含文件目录”查找。 1.命令的一般形式 2.功能 在预处理时,将include命令后指定文件的内容替换该命令行。 #define 宏名 字符串 宏定义的功能: 在进行编译前,用字符串原样替换程序中的宏名。 这个替换过程称为“宏替换”或“宏展开”,字符串也称为替换文本。 一般格式: 例如: #define PI 3.1416 main() { float r,s,c; scanf(%f,r); s = r * r * PI; c = 2 * r * PI; printf(s=%f, c=%f,s,c); } 3.1416; 3.1416; 编 译 替 换 说明: ① 宏定义的作用域是从定义处开始到源文件结束, 但根据需要可用undef命令终止其作用域。形式为: #undef 宏名 例: #define YES 1 main() { …….. } #undef YES #define YES 0 max() {…….. } YES原作用域 YES新作用域 编译预处理后的程序: main( ) { float r; printf(\nInput r:); scanf(%f,r); printf(S=%.2f V=%.2f\n, 3.14*r*r, 4* 3.14*r*r *r/3); } S 进入编译 V 一般形式 #define 宏名(形参表) 字符串 功能: 在编译预处理时,把源程序中所有带参数的宏名用宏定义中的字符串替换,并且用宏名后圆括号中的实参替换字符串中的形参。 不能加空格 例 #define S(a,b) a*b ……….. area=S(3,2); 宏展开: area=3*2; 例 #define S (r) PI*(r)*(r) 相当于定义了不带参宏S,代表字符串“(r) PI*(r)*(r)” 例如: #define POWER(x) x*x x=4; y=6; z=POWER(x+y); 宏展开:
您可能关注的文档
- 10第十章总需求与总供给理论AD-AS模型.ppt
- 10眼球力学及临床应用研究2008.ppt
- 10第十章生物技术与环境.ppt
- 10级金融工程6.ppt
- 雅博司在肝胆疾病介入治疗中应用.ppt
- 10级发展心理1.ppt
- 食品理化检验样品的采集与处理.ppt
- 高一通用技术+31设计一般过程+课件.ppt
- 10细胞分裂和细胞周期1.ppt
- 10细胞增殖和细胞周期2.ppt
- 2025年广西中考地理二轮复习:专题四+人地协调观+课件.pptx
- 2025年广西中考地理二轮复习:专题三+综合思维+课件.pptx
- 2025年中考地理一轮教材梳理:第4讲+天气与气候.pptx
- 第5讲+世界的居民课件+2025年中考地理一轮教材梳理(商务星球版).pptx
- 冀教版一年级上册数学精品教学课件 第1单元 熟悉的数与加减法 1.1.6 认识1-9 第6课时 合与分.ppt
- 2025年中考一轮道德与法治复习课件:坚持宪法至上.pptx
- 2025年河北省中考一轮道德与法治复习课件:崇尚法治精神.pptx
- 八年级下册第二单元+理解权利义务+课件-2025年吉林省中考道德与法治一轮复习.pptx
- 精品解析:湖南省娄底市2019-2020学年八年级(上)期中考试物理试题(原卷版).doc
- 2025年中考地理一轮教材梳理:第10讲+中国的疆域与人口.pptx
文档评论(0)