- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 编译预处理 主要内容 文 件 包 含 宏 定 义 条 件 编 译 8.1 文 件 包 含 所谓“文件包含”处理是指一个源文件可以将 另外一个源文件的全部内容包含进来,即将 另外的文件包含到本文件之中。C语言提供 了#include命令用来实现“文件包含”的操作。 其一般格式为: #include 文件名 或 #include 文件名 “文件包含”的含义 8.1 文 件 包 含 【例】计算xn。 #includestdio.h main() {int i,power(); for(i=0;i10;i++) printf(%2d,%4d,%6d\n,i,power(2,i),power(-3,i)); } power(int x,int n) {int i,p; p=1; for(i=1;i=n;i++) p=p*n; return(p); } 8.1 文 件 包 含 power()函数是用来计算的值,对不同n的值(n值由main()函 数中i决定),power()完成一次计算,并把当前计算的值返 回给调用处。 下面,将power()函数单独保存为power.c文件,即power.c的内容为: power(int x,int n) {int i,p; p=1; for(i=1;i=n;i++) p=p*n; return(p); } 8.1 文 件 包 含 接着,利用标准库函数的pow()和用户自定义的函数power()分别进行xn 的计算。程序如下: #includestdio.h #includemath.h #includepower.c main() {double i; for(i=0.0;i10.0;i++) {printf(%lf,%lf,%lf\n,i,pow(2,i),pow(-3,i)); printf(%4d,%8d,%12d\n,(int)i,power(2,(int)i),power(-3,(int)i)); } } 8.1 文 件 包 含 pow()函数的定义在math.h头文件中,因此,必须用#include命令将math.h包含进来。power()函数在power.c文件中进行了定义,所以也用#include命令将power.c包含到该文件中。 8.1 文 件 包 含 说明: 一个#include命令只能指定一个被包含文件,如果要包含n个文件,要用n个#include命令。 如果文件1包含文件2,而文件2中要用到文件3的内容,则可在文件1中用两个#include命令分别包含文件2和文件3,而且文件3应出现在文件2之前,即在file1.c中定义: #includefile3.h #include file2.h 这样,file1和file2都可以用file3的内容。在file2中不必再用#include file3.h了(以上是假设file2.h在本程序中只被file1.h包含,而不出现在其他场合)。 8.1 文 件 包 含 在一个被包含文件中又可以包含另一个被包含文件,即文件包含是可以嵌套的。 在#include命令中,文件名可以用双引号或尖括号括起来,如在file1.c中用 #include file2.h 或 #include file2.h 都是合法的。二者的区别是:用尖括号(即file2.h形式)时,系统到存放C库函数头文件所在的目录中寻找要包含的文件,这称为标准方式。用双引号(即file2.h形式)时,系统先在用户当前目录中寻找要包含的文件,若找不到,再按标准方式查找(即再按尖括号的方式查找)。 8.1 文 件 包 含 一般地,如果为调用库函数而用#include命令来包含相关头文件,则用尖括号,以节省查找时间。如果要包含的是用户自己编写的文件(这种文件一般都在当前目录中),一般用双引号。 被包含文件(file2.h)与其所在的文件(即用#include命令的源文件file1.c),在预编译后已成为同一个文件(而不是两个文件)。因此,如果file2.h中有全局静态变量,它也在file1.c文件中有效,不必用extern声明。 8.1 文 件 包 含 用在文件头部的被包含文件称为“标题文件”或“头部文件”,常以“h”为后缀名(h为head(头)的缩写),如“math.h”。也可以不用“.h”为后缀,用“.c”为后缀或者没有后缀都是可以的。 8.2 宏 定 义 不带参数的宏定义 带参数的宏定义 8.2.1 不带参数的宏定义 不带参数的宏定义是用一个指定的标识符(即名字)来代表一个字符串,它的一般形式为: #define 标识符 字符串 这就是在前面介绍过的
文档评论(0)