c程序设计 谭浩强 第9章.pptVIP

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

第九章 编译预处理 * 9 编译预处理 9. 1 预处理功能 1. 简单宏定义的一般形式是: 有关宏的定义和使用要注意以下几点: 有关宏的定义和使用要注意以下几点: 有关宏的定义和使用要注意以下几点: 又如: 有关宏的定义和使用要注意以下几点: 有关宏的定义和使用要注意以下几点: 2 . 带参数的宏定义 带参数宏定义的一般格式 几点使用说明 几点使用说明 几点使用说明 3.带参数的宏和函数之间的比较 4.#、##运算符和宏替换嵌套 4.#、##运算符和宏替换嵌套 4.#、##运算符和宏替换嵌套 ③ 带参数的宏替换也可以嵌套定义。 9.2 文 件 包 含 1.文件包含的概念 3.文件包含的优点 4.说明 9.3 条件编译 9.3.1 #ifdef ~ #endif和#ifndef ~ #endif命令 9.3.1 #ifdef ~ #endif和#ifndef ~ #endif命令 9.3.2 #if ~ #endif [案例] 9.4 库函数使用方式 实验12 编译预处理、内部函数和外部函数 实验目的:掌握宏定义、宏调用,以及宏展的处理过程,掌握文件包含的概念和使用。掌握内部函数和外部函数的定义及使用方法。 实验内容: 1.试分析以下宏替换后的形式,计算输出结果。 要求:先计算运行结果,然后利用程序验证。 #include stdio.h #define CX(y) 2.5+y #define PR(a) printf(%d,(int)(a)) #define PR1(a) PR(a); putchar(\n) main() { int x=2; PR1(CX(5)*x); } 实验12 编译预处理、内部函数和外部函数 2.通过宏调用方式,求从n个数的最大值。 要求:数据从键盘输入。 3.已知a、b都为整型数,计算a*b。 要求: (1)a、b值从键盘输入。 (2)主函数和计算a*b的函数在不同文件中存放,求a*b的函数为内部函数,使用文件包含完成。 4.删除字符串中的指定字符。 要求:(1)字符串和要删除字符都在主函数中输入,结果在主函数中输出。 (2)主函数和删除字符串指定字符的函数在不同文件中存放,删除字符串指定字符的函数为外部函数。 Thank you ! * 第九章 9. 1预处理功能 9. 2文 件 包 含 9. 3条 件 编 译 9. 4库函数使用方式 * 所谓编译预处理是指,在对源程序进行编译之前,先对源程序中的编译预处理命令进行处理;然后再将处理的结果,和源程序一起进行编译,以得到目标代码。 9. 1 预处理功能 9. 2 文 件 包 含 9. 3 条 件 编 译 9. 4 库函数使用方式 #define 标识符 字符序列 其中,标识符称作宏名,一般用大写字母。 例如: #define PI 3.1415926 对于像PI这样的宏在进行使用和处理时分为3个步骤:① 在函数之外(往往在程序开头)使用#define定义宏名;② 在程序中使用已定义的宏名;③ 在程序进行编译时,由预处理程序对宏名进行宏替换,恢复被宏名所代替的字符序列的原貌。 例如:#define N 50 #define PI 3.1415926 … int a[N]; double r,l; … l = 2*PI*r; … 经过宏替换之后,上述代码实际上就变成: … int a[50]; double r,l; … l=2*3.1415926*r; … ① 宏定义在源程序中要单独占用一行,通常“#”号出现在一行的第一个字符的位置,允许在#号的前面有若干空格或制表符,但不允许有其他字符。 ② 宏名用大、小写字母标识都行,为醒目起见,往往用大写字母表示。 ③ 用双引号括起来的标识符不做宏替换。例如: #define TRUE 1 则打印语句 printf(TRUE); 会打印出TRUE,而不是1。 ④ 宏定义可以嵌套。例如: #define PI 3.1415926 #define TWOPI ( 2*PI ) 在预处理后,语句 c1=TWOPI * r; 便替换成 c1=( 2 * 3.1415926 ) * r; ⑤ 宏替换只是按原来的定义“机械地”进行替换,不管替换后的结果是对还是错。例如: #define A 3

文档评论(0)

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

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

1亿VIP精品文档

相关文档