第8章 编译预处理基础.pptVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 编译预处理基础

编译预处理基础 宏定义预处理命令及其简单应用 文件包含预处理命令及其简单应用 条件编译预处理命令及其简单应用 宏定义预处理命令及其简单应用 不带参数的宏定义 不代参数宏定义预处理语句的一般形式是: #define 宏标识符 字符串 宏调用的格式为: 宏标识符 宏调用的作用 在宏定义的作用范围之内,将所有的宏标识符用指定的字符串替换。式中,宏标识符也称为宏名或符号常量。 Ex0801 宏定义使用的简单示例 。 宏定义预处理命令及其简单应用 不带参数的宏定义 宏定义的使用注意点: (1)宏标识符字母大小写问题 (2)使用宏定义可以对程序的调试提供帮助 (3)宏定义不是C语句,不需要使用分号作为语句的结尾 (4)字符串常量中出现的宏标识符不能进行替换 (5)宏定义的作用域(即有效范围)从其定义位置起到所在源程序文件结束为止。 (6)宏定义可以嵌套定义 Ex0802编程序实现功能:从键盘上提供500个实型数据到数组中,然后求出数组中所有元素之和。 Ex0803宏调用替换问题的理解示例 。 宏定义预处理命令及其简单应用 带参数的宏定义 代参数宏定义预处理语句的一般形式是: #define 宏标识符(形参表) 表达式样式字符串 宏调用的格式为: 宏标识符(实参表) 宏调用的作用 在宏定义的作用范围之内,将所有的宏标识符用指定的表达式样式字符串替换,然后用宏调用中的实际参数代替通过替换形成的表达式中的形式参数。 Ex0801 代参数宏定义使用示例(不能正确处理表达式样式实际参数)。 宏定义预处理命令及其简单应用 带参数的宏定义 参数宏定义与函数之间 区别: (1)宏定义在预处理时原地进行替换展开,一般会增加代码的长度;函数是运行时才进行调用,代码的长度不会增加,但系统有调用函数的开销,。 (2)在程序控制流程上,函数的调用需要进行控制的转移,而带参数宏调用时仅仅是表达式的运算; (3)带参数宏定义的形式参数与C函数中的形式参数不同,它没有确定的数据类型。在宏调用时随着代入的实际参数数据类型的不同,其运算结果的类型随之而变。 (4)函数调用时存在着从实际参数向形式参数传递数据的过程,而带参数宏调用中不存在这种过程,因而宏调用一般比函数调用具有较高的时间效率。 Ex0805带参数宏调用替换问题的理解示例。 编译预处理基础 宏定义预处理命令及其简单应用 文件包含预处理命令及其简单应用 条件编译预处理命令及其简单应用 文件包含预处理命令及其简单应用 文件包含书写形式及意义 文件包含编译预处理语句的一般形式为: #include 文件名或 #include 文件名“ 用文件包含方式组织多源文件C程序 组织多源文件C程序常用的方法 单独编译每一个源程序文件,然后用连接程序对编译好的目标文件进行连接构成执行文件。 使用工程文件方式,这也是现代开发环境中使用的方法。 使用文件包含预处理方式 Ex0806使用文件包含组合多源程序文件C程序。 编译预处理基础 宏定义预处理命令及其简单应用 文件包含预处理命令及其简单应用 条件编译预处理命令及其简单应用 条件编译预处理命令及其简单应用 #if、#elif、#else、#endif 作用 指示编译器在进行编译处理时如何挑选C代码段,它们的处理是在C程序被编译之前就进行的。 使用#if序列预处理语句构成常见程序段 Ex0807条件编译预处理 #if 条件1 程序段1 #elif 条件2 程序段2 …… #elif条件n 程序段n #else 缺省程序段 #endif 条件编译预处理命令及其简单应用 #ifdef和#ifndef #ifdef编译预处理语句 ifdef预处理语句的基本使用格式是:#ifdef标识符,其基本意义是“如果定义有标识符,则条件成立(为真)”,#ifdef预处理语句通常也和#elif、#else、#endif预处理语句序列一起构成可以选择编译的程序段,其基本形式如下: #ifdef 标识符 〈程序段1〉 #else 〈程序段2〉 #endif。 Ex0808利用条件编译实现在程序调试过程中输出中间结果。 条件编译预处理命令及其简单应用 #ifdef和#ifndef #ifndef编译预处理语

文档评论(0)

dajuhyy + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档