当前位置:嗨网首页>书籍在线阅读

13-使用头文件

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

16.5.2 使用头文件

浏览任何一个标准头文件都可以了解头文件的基本信息。头文件中最常用的形式如下。

  • 明示常量 ——例如, stdio.h 中定义的 EOFNULLBUFSIZE (标准I/O缓冲区大小)。
  • 宏函数 ——例如, getchar() 通常用 getc(stdin) 定义,而 getc() 经常用于定义较复杂的宏,头文件 ctype.h 通常包含 ctype 系列函数的宏定义。
  • 函数声明 ——例如, string.h 头文件(一些旧的系统中是 strings.h )包含字符串函数系列的函数声明。在ANSI C和后面的标准中,函数声明都是函数原型形式。
  • 结构模版定义 ——标准I/O函数使用 FILE 结构,该结构中包含了文件和与文件缓冲区相关的信息。 FILE 结构在头文件 stdio.h 中。
  • 类型定义 ——标准I/O函数使用指向 FILE 的指针作为参数。通常, stdio.h#definetypedefFILE 定义为指向结构的指针。类似地, size_ttime_t 类型也定义在头文件中。

许多程序员都在程序中使用自己开发的标准头文件。如果开发一系列相关的函数或结构,那么这种方法特别有价值。

另外,还可以使用头文件声明外部变量供其他文件共享。例如,如果已经开发了共享某个变量的一系列函数,该变量报告某种状况(如,错误情况),这种方法就很有效。这种情况下,可以在包含这些函数声明的源代码文件定义一个文件作用域的外部链接变量:

int status = 0;  // 该变量具有文件作用域,在源代码文件

然后,可以在与源代码文件相关联的头文件中进行引用式声明:

extern int status;  // 在头文件中

这行代码会出现在包含了该头文件的文件中,这样使用该系列函数的文件都能使用这个变量。虽然源代码文件中包含该头文件后也包含了该声明,但是只要声明的类型一致,在一个文件中同时使用定义式声明和引用式声明没问题。

需要包含头文件的另一种情况是,使用具有文件作用域、内部链接和 const 限定符的变量或数组。 const 防止值被意外修改, static 意味着每个包含该头文件的文件都获得一份副本。因此,不需要在一个文件中进行定义式声明,在其他文件中进行引用式声明。

#include#define 指令是最常用的两个C预处理器特性。接下来,我们介绍一些其他指令。