程序设计基础教程第8章 预处理命令--2课时 .pptVIP

程序设计基础教程第8章 预处理命令--2课时 .ppt

  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文档。上传文档
查看更多
程序设计基础教程第8章 预处理命令--2课时

宏定义 “文件包含”处理 条件编译 学习目标 理解并掌握宏的定义方法; 熟练应用文件包含命令; 了解并能够应用条件编译命令。 C语言的源程序经过以下步生成可执行文件: C语言的预处理程序负责分析和处理以“#”字符开始的预处理 控制行。 C提供的预处理功能主要有以下三种:   1. 宏定义   2. 文件包含   3. 条件编译 这些命令以符号“#”开头。 宏定义 不带参数的宏定义 #define 标识符 字符串 如:#define PI 3.1415926 说明: 宏名一般习惯用大写字母表示。 使用宏名代替一个字符串,可以减少程序中重复书写某些字符串的工作量;也便于通过修改宏来一次性修改程序中常出现的该字符串。 (3) 宏定义是用宏名代替一个字符串,也就是作简单的置换,不作正确性检查。 (4) 宏定义不是C语句,不必在行末加分号。 (5) #define命令,宏名的有效范围为定义命令之后到本源文件结束。通常宏定义出现在源文件开始处,作为C语言源程序的一部分,在该文件内有效。为了限制宏的作用范围,可以用#undef命令终止宏的作用域。 #define G 9.8 void main() { … } #undef G f1() { … } (6) 在进行宏定义时,可以引用已定义的宏名,可以层层置 换。 #define R 3.0    #define PI 3.1415926    #define L 2*PI*R    #define S PI*R*R    void main()    {    printf(L=%f\ns=%f\n,L,S);    } (7) 对程序中用双括号括起来的字符串内的字符,即使与宏名 相同,也不进行置换。 (8) 宏定义是与定义变量的含义不同,只作字符替换,不分配 内存空间。 (9) 程序中进行宏置换时,注意的内容。 #define PI 3.14159 #define R 3.0+2.0    #define S PI*R*R    void main()    {    printf(“S=%f\n,S);    } S=3.1415926*3.0+2.0*3.0+2.0 若程序为: #define PI 3.14159 #define R 3.0+2.0    #define S PI*(R)*(R)    void main()    {    printf(“S=%f\n,S);    } S=3.1415926*(3.0+2.0)*(3.0+2.0) 宏定义——无参数宏举例 【例8.1】无参数宏用于表示一个表达式。 #define N (y*y+3*y+1)//宏定义 #includestdio.h void main() { int t,y; printf(input a number:); scanf(%d,y); t=3*N+4*N+5*N; //宏调用 printf(t=%d\n,t); } 运行情况: input a number: 3 t=228 带参数的宏定义 #define 宏名(参数表) 字符串 字符串中包含在括弧中所指定的参数。如: #define s(a,b) a*b area=s(3,2); 例 #define PI 3.1415926 #define S(r) PI*r*r void main() { float a,area; a=3.6; area=S(a); printf(r=%f\narea=%f\n,a,area); } 运行结果如下: r=3.600000 area=40.715038 说明: 对带参数的宏的展开只是将语句中的宏名后面括号内的实参字符串代替#define命令行中的形参。 (2) 在宏定义时,在宏名与带参数的括弧之间不应加空格,否则将空格以后的字符都作为替代字符串的一部分。 例如: #define S (r)PI*r*r 则 area=S(a); 被替换为 area=(r)PI*r*r(a); “文件包含”处理 “文件包含”处理是指一个源文件可以将另外一个源文件的全 部内容包含进来,即将另外的文件包含到本文件之中。 C语言提供了#include命令用来实现“文件包含”的操作。 #include “文件名” 或 #include 文件名 图7.2 “文件包含”命令是很有用的,它可以节省程序设计人员的重复 劳动。相当于工业上的标准零件,拿来就用。 说明: (

文档评论(0)

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

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

1亿VIP精品文档

相关文档