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

c语言课牛件 第10章.ppt

  1. 1、本文档共87页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言课牛件 第10章

第10章 预处理、输入/输出和文件操作 C语言的预处理功能由C编译的预处理程序实现,负责分析和处理行首以“#”号开头的控制行。这些控制行包括宏替换、文件包含和条件编译等。 C语言中并没有专门用于输入/输出的语句。为了给出方便的程序接口,C语言中提供了“标准I/O库”,它是一组函数,可提供一系列I/O服务。 10.1 预处理功能 10.2 文 件 包 含 10.3 条 件 编 译 10.4 其他预处理功能 10.5 库函数使用方式 10.6 常用标准输入/输出函数 10.7 文件及有关操作 10.8 其他一些常用的函数(宏) 10.1 预处理功能 10.1.1 简单宏定义和宏替换 简单宏定义的一般形式是: #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+2 那么 5/A 被替换成 5/3+2 又如: #define PI 3.l4l5q /* 有错:4的前面是字母l,5的后面是字母q */ … area = PI * r * r; … 照样进行宏替换: … area = 3.l4l5q * r * r; … 为了避免出现上述第一种情况造成的误解,应当把字符序列用括号括起来。 #define A (3+2) ⑥ 如果宏定义中的字符序列过长,在一行中放不下,可在该行末尾加续行符“\”,后随一个换行符。 #define LONG_STRING this is a very long string that is used as \ ↙ an example ⑦ 可以用宏定义来表示数据类型。 #define MAX 100 #define ENTRY struct entrytype 在程序中可用ENTRY定义变量: ENTRY table[MAX],* p; ⑧ 如果宏名出现在#号之后,则不对它进行替换。例如: #define DEF define #DEF N 10 ⑨ 宏名的有效范围是从定义它的地方开始到其所在文件末尾或者用 #undef指令消除该宏定义为止。宏名不受分程序结构的影响,在其有效范围内遵循宏替换的规则。 10.1.2 带参数的宏定义 1.带参数宏定义的一般格式 带参数的宏定义的一般形式是: #define 宏名(参数表) 字符序列 例如,定义一个计算圆面积的宏:

您可能关注的文档

文档评论(0)

150****4233 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档