C语言程序设计教程(第2版)课件第10章.pptVIP

C语言程序设计教程(第2版)课件第10章.ppt

  1. 1、本文档共28页,可阅读全部内容。
  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文档。上传文档
查看更多
C语言程序设计教程(第2版)课件第10章

第10章 编译预处理 概 述 10.1 文件包含 “文件包含”示意图 file1.c file2.c file1.c 包含 #include“file2.c” B A B A (a) (b) (c) 假如file1.c文件中的内容如下: int a,b,c; float m,n,p; char r,s,t; file2.c文件的内容如下: #includefile1.c main() {……} 经过编译预处理后,file2.c文件的内容为: int a,b,c; float m,n,p; char r,s,t; main() {……} 在使用编译预处理#include语句时,需要注意的几个问题如下: (1) 当#include语句指定的文件中的内容发生改变时,包含文件的所有源文件都应该注意重新进行编译等处理。 (2) 文件包括可以嵌套使用,即被包括的文件中还可以使用#include语句。 (3) 由#include语句指定文件中可以包含任何语言成分,通常将经常使用的、具有公共性质的符号常量、带参数的宏定义以及外部变量等集中起来放在这种文件中,这样可以避免一些重复操作。 (4)被包含的文件通常是源文件,而不是目标文件。 10.2 宏定义 10.2.3 终止宏定义 宏命令#undef用于终止宏定义的作用域。一般形式为:? #unfine 宏名 例如:? #define area(r) (PI*r*r) main() {……} #undef area(r) func() {……} 由于在函数func()之前,使用#undef终止宏名area(r)的作用,在函数func()中area(r)不再起作用。#undef也可以用于函数内部。 例 宏替换与函数调用的区别。 #define MUL(a,b) a+b int m(int a,int b) { return (a*b); } main() { printf(“%d\n”,MUL(1+2,5-4)); printf(“%d\n”,m(1+2,5-4)); } 程序的运行结果为: 7 3 原因显而易见,调用MUL宏时,计算的表达式是1+2*5-4,而调用m函数时,计算的表达式的是(1+2)*(5-4)。 10.3 条 件 编 译 带有#elif的条件编译 定义的一般形式为:? #if 表达式1 程序段1 #elif表达式2 程序段2 #elif表达式3 程序段3 …… #else 程序段n #endif 这里的#elif的含义是“else if”。 例 输入一个口令,根据需要设置条件编译,使之在调试程序时,按原码输出;在使用时输出“*”号。 #define DEBUG void main() {char pass[80];int i=1; printf(\nplease input password:); do{i++; pass[i]=getchar(); #ifdef DEBUG putchar(pass[i]); #else putchar(*); #endif }while(pass[i]!=\r); …… } 10.4 小 结 C语言的宏定义可以分为两种形式:一种是带参数的宏定义;另一种是不带参数的宏定义。 所谓文件包含预处理,是指在一个文件中将另外一个文件的全部内容包含进来的处理过程,即将另外的文件包含到本文件中。 (3) 一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只有在满足一定条件下才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。 * 本章要点 熟练掌握include命令的含义和用法 理解#define命令的使

文档评论(0)

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

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

1亿VIP精品文档

相关文档