网站大量收购独家精品文档,联系QQ:2885784924

C语言程序设计曹哲曹哲书xg第9章节xg.pptVIP

C语言程序设计曹哲曹哲书xg第9章节xg.ppt

  1. 1、本文档共10页,可阅读全部内容。
  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文档。上传文档
查看更多
尚辅网 / 第9章 编译预处理命令 学习内容指南 9.1 宏定义 9.2 文件包含 9.3 编译器控制命令 观察下列程序中带#的命令行。 #include stdio.h #define PI 3.14 void main ( ) { double r = 2 ; double c = 2 * PI * r ; double s = PI * r * r ; printf ( The circle is %lf\n , c ) ; printf ( The area is %lf\n , s ) ; } 前言 在编译此源程序之前,系统先将带#的两个命令#include stdio.h 和 #define PI 3.14 进行处理,处理之后再对该源程序进行编译,并生成.obj文件。 如#include和#define等命令,这些以#开头的命令称作预处理命令。所谓编译预处理,是指在对源程序进行编译之前,先对源程序中的预处理命令进行处理,然后再将处理结果与源程序一起进行编译,最后生成目标文件,即*.obj文件。预处理中的“预”是指在源程序编译之前之意。 前言 上述程序中,带#的称作预处理命令,而不是一个C语句,所以一个预处理命令结束时,不能加分号。还应该注意,程序中一行只能有一个预处理命令,否则将报错,而且预处理命令除了终止宏定义命令外,通常都写在程序的最前面。 1) 宏定义(#define)和 终止宏定义(#undef)命令 3)条件编译( #ifdef-#else-endif 和 #ifndef-#else-#endif )命令。 2)文件包含(#include)命令 在C语言中用到的预处理命令主要有 宏定义是指在源程序中,一个标识符可以被指定文本字符串替换,其中的标识符指的是符号常量,也称为“宏名”。 9.1 宏命令 宏替换也叫宏展开,其替换方法与文字编辑系统中的“查找/替换”完全相似。 假设,有下面的一个宏定义: #define PI 3.14 Define 的含义是预处理命令中的宏命令 编译前系统进行预处理,即宏替换,也就是将程序中其后所有出现 PI 的地方,全部用 3.14 替换掉。 一般形式如下: #define 宏名 文本字符串 注意: 按照 C程序书写习惯,宏名一般用大写字母表示,以区别于程序中那些自定义的变量名 那么,宏定义可以为程序设计带来哪些好处呢? 提高源代码的可维护性。 提高程序的可移植性。 如果需要增加圆周率精度,如3.141592,那么只需要修改程序开头的宏定义#define PI 3.14为#define PI 3.141592就可以了。从而避免了将所有使用PI的地方“逐个”进行修改的麻烦。宏定义的引入,既大大减少了修改次数,又避免了修改过程中的遗漏,从而提高了程序的可维护性。 程序中的某些常量与使用的操作系统有关,当程序从一个操作系统移植到另一个操作系统的时,需要对这些常量进行修改。使用宏定义对这些常量的值进行改写,这样才会使程序能够跨平台运行,并得到正确结果。 例如: #define INTEGER_SIZE 32 是针对16位操作系统设计的。如果移植到64位操作系统,只需将宏定义中的32改为64就可以了。 宏定义 无参宏定义 无参宏定义是指宏名中不带参数的宏定义。无参宏定义经常使用以下几个方面的应用,分别是宏名替换简单常量、宏名替换常量表达式和宏名换运算符。 下面将分别介绍: 宏名替换简单常量 宏名替换常量表达式 宏名换运算符 无参宏定义 宏名替换简单常量: #include stdio.h #define PRICE 10 void main ( ) { int sum ; int total = 3 ; sum = total * PRICE ; printf ( PRICE=%d\n , PRICE ) ; printf ( sum=%d\n , sum ) ; } 使用宏定义输出每个商品的单价和总价钱。 预处理时,进行宏替换,即将程序中该宏定义之后所有出现PRICE的地方,全部用10替换掉 sum = total * 10 ; printf ( PRICE=%d\n , 10 ) ; printf ( sum=%d\n , sum ) ; 运行结果 PRICE=10 sum=30

文档评论(0)

精品课件 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档