汉扬编程 C语言入门 C语言学习之头文件的原理和使用方法

C语言学习之头文件的原理和使用方法

C语言学习之头文件的原理和使用方法

头文件是扩展名为 .h 的文件,包含了 C 函数声明和宏定义,被多个源文件中引用共享。有两种类型的头文件:程序员编写的头文件和编译器自带的头文件。

在程序中要使用头文件,需要使用 C 预处理指令 #include 来引用它。前面我们已经看过 stdio.h 头文件,它是编译器自带的头文件。

引用头文件相当于复制头文件的内容,但是我们不会直接在源文件中复制头文件的内容,因为这么做很容易出错,特别在程序是由多个源文件组成的时候。

A simple practice in C 或 C++ 程序中,建议把所有的常量、宏、系统全局变量和函数原型写在头文件中,在需要的时候随时引用这些头文件。

引用头文件的语法

使用预处理指令 #include 可以引用用户和系统头文件。它的形式有以下两种:

#include <file>

这种形式用于引用系统头文件。它在系统目录的标准列表中搜索名为 file 的文件。在编译源代码时,您可以通过 -I 选项把目录前置在该列表前。

#include \”file\”

这种形式用于引用用户头文件。它在包含当前文件的目录中搜索名为 file 的文件。在编译源代码时,您可以通过 -I 选项把目录前置在该列表前。

引用头文件的操作

#include 指令会指示 C 预处理器浏览指定的文件作为输入。预处理器的输出包含了已经生成的输出,被引用文件生成的输出以及 #include 指令之后的文本输出。例如,如果您有一个头文件 header.h,如下:

char *test (void);

和一个使用了头文件的主程序 program.c,如下:

int x;

#include \”header.h\”

int main (void)

{

puts (test ());

}

编译器会看到如下的代码信息:

int x;

char *test (void);

int main (void)

{

puts (test ());

}

只引用一次头文件

如果一个头文件被引用两次,编译器会处理两次头文件的内容,这将产生错误。为了防止这种情况,标准的做法是把文件的整个内容放在条件编译语句中,如下:

#ifndef HEADER_FILE

#define HEADER_FILE

the entire header file file

#endif

这种结构就是通常所说的包装器 #ifndef。当再次引用头文件时,条件为假,因为 HEADER_FILE 已定义。此时,预处理器会跳过文件的整个内容,编译器会忽略它。

有条件引用

有时需要从多个不同的头文件中选择一个引用到程序中。例如,需要指定在不同的操作系统上使用的配置参数。您可以通过一系列条件来实现这点,如下:

#if SYSTEM_1

# include \”system_1.h\”

#elif SYSTEM_2

# include \”system_2.h\”

#elif SYSTEM_3

#endif

但是如果头文件比较多的时候,这么做是很不妥当的,预处理器使用宏来定义头文件的名称。这就是所谓的有条件引用。它不是用头文件的名称作为 #include 的直接参数,您只需要使用宏名称代替即可:

#define SYSTEM_H \”system_1.h\”

#include SYSTEM_H

SYSTEM_H 会扩展,预处理器会查找 system_1.h,就像 #include 最初编写的那样。SYSTEM_H 可通过 -D 选项被您的 Makefile 定义。

C语言中的头文件写哪些内容

C语言学习之头文件的原理和使用方法

在C语言中,头文件是程序各部分之间保证信息一致性的桥梁,是连接程序对象定义和使用的纽带。

C语言学习之头文件的原理和使用方法

通常开发C程序的程序员会把一个程序分为两类:

C语言学习之头文件的原理和使用方法

以.h为扩展名的辅助性文件,也称为头文件。以.c为扩展名的基本程序文件,也称为源代码文件;定义好头文件是保证大型程序开发工作能够顺利进行的重要环节。

比如几个人共同开发一个大系统,他们之间需要有一些约定。如果一个人定义的东西呗另一个人使用,就需要通过引入对应的头文件来建立相互间的联系。在程序开发时,最早成型的可能是一批头文件,它们形成不同工作者之间的联系标准。即使是一个人,在采用分块方式写程序时也有类似的情况。

C语言系统本身也遵循这一方式,提供了一组标准库头文件。这些头文件的作用就是为在C程序里使用标准库函数以及其他功能提供必要的信息。若需要在程序里使用某些库函数,只要在源文件前面包含了必要的头文件,就能保证在编译过程对源文件中相关函数的调用正确进行处理。

graphics.h示例

在实际的开发工作中,对于.h头文件的内容安排,建议头文件里只写不实际生成代码、不导致实际存储分配的描述,可参考下面的一些内容:

包含标准库头文件和其他头文件的预处理命令;各种公用的宏定义;各种公共的类型定义;结构、联合、枚举的声明;函数原型的声明;变量的外部说明。

本文来自网络,不代表汉扬编程立场,转载请注明出处:http://www.hyzlch.com/cjia/5886.html

C语言中在所有已给数据中任选几个数据怎么编?

头文件基础讲解(C语言)

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部