- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、概念c提供编预处理功能c对源程序进行编译(语法
编译 预处理 一 概 念 二 宏 定 义 三 文件包含 一、概念: c提供编译预处理功能:c对源程序进行编译( 语法 分析、代码生成和优化等)之前需要完成的工作。 即完成对预处理的命令处理,将预处理的结果再和源程 序一起进行编译,最后得到可执行的目标代码。 编译预处理的命令有三种: 宏定义 文件包含 条件编译 均以 # 号开始,末尾无 ; 号(这是 c 的特殊命令 不是语句) 二、宏定义 1、不带参数宏定义 格式: #define 标识符 字符串 含义: 定义时将一个字符串定义成一个标识符; 编译预处理时,将程序中所有宏名用该 字符串代替,也称宏展开(宏替换)。 注意: 宏名常用大写,以示与变量区别。宏展 开 时不做语法检查。 宏名有效范围:从宏定义开始到本源文件 结束, 但也可用 #undef 终止。 可以 引用已定义的宏名, 层层置换。 . #define R 2.0 #define PI 3.14159 #define S PI*R*R : : 程序中用一对“ ”括起来的串内的字符与宏名相同, 不可展开. 例: 上面定义宏名 S printf (“ S=%s\n ”, str); /* 其中S均不可替换 */ 2、带参数宏定义 格式: #define 宏名(参数表) 字符串 含义: 基本同不带参宏定义,区别在编译预处理 时,将程序里出现宏名处用字符串代替, 而字符串里的参数应用宏名后括号里的实 参替换。 应含参数 表 中的参数 例:#define PI 3.14159 #define S(r) PI*r*r main( ) { float area, a; scanf (“ %f ”, a); area=S(a); /* area=PI*a*a */ printf (“ area=%f\n ”, area); } area=S(a+2); /* area=PI*a+2*a+2不符原意 */ 可改为 area=S((a+2)); /* area=PI*(a+2)*(a+2) 相符 */ 或改宏定义: #define S(a) PI*(a)*(a) : area=S(a+2); /* 宏展开:area=PI*(a+2)*(a+2) */ 例 : #define FU(k) k+3.14 #define PR(a) printf (“a=%d\t ”, (int)(a)) #define PRINT(a) PR(a); putchar (‘\n’) main( ) { int x=2; PRINT (x*FU(2)) ; }
文档评论(0)