头文件里的头文件是干嘛的

来源:百度知道 编辑:UC知道 时间:2024/06/13 23:05:48
比如源文件为a.c 头文件为a.h
第1种情况是:a.h里有b.h; a.c里有a.h跟b.h
第2种情况是:a.h里有b.h; a.c里只有a.h没b.h
编译时是把头文件包含到源文件里的这我知道;第2种情况是不是能重复包含?

我可能讲得不是很清楚,因为我不懂,希望懂我意思的高手能解释一下
如果可以重复包含,那第1种情况为什么要多此一举在a.c里多包含个b.h呢

文件包含
文件包含是C预处理程序的另一个重要功能。
文件包含命令行的一般形式为:
#include"文件名"
在前面我们已多次用此命令包含过库函数的头文件。例如:
#include"stdio.h"
#include"math.h"
文件包含命令的功能是把指定的文件插入该命令行位置取代该命令行,从而把指定的文件和当前的源程序文件连成一个源文件。
在程序设计中,文件包含是很有用的。一个大的程序可以分为多个模块,由多个程序员分别编程。有些公用的符号常量或宏定义等可单独组成一个文件,在其它文件的开头用包含命令包含该文件即可使用。这样,可避免在每个文件开头都去书写那些公用量,从而节省时间,并减少出错。
对文件包含命令还要说明以下几点:
1. 包含命令中的文件名可以用双引号括起来,也可以用尖括号括起来。例如以下写法都是允许的:
#include"stdio.h"
#include<math.h>
但是这两种形式是有区别的:使用尖括号表示在包含文件目录中去查找(包含目录是由用户在设置环境时设置的),而不在源文件目录去查找;
使用双引号则表示首先在当前的源文件目录中查找,若未找到才到包含目录中去查找。用户编程时可根据自己文件所在的目录来选择某一种命令形式。
2. 一个include命令只能指定一个被包含文件,若有多个文件要包含,则需用多个include命令。
3. 文件包含允许嵌套,即在一个被包含的文件中又可以包含另一个文件。

C库文件
C系统提供了丰富的系统文件,称为库文件,C的库文件分为两类,一类是扩展名为".h"的文件,称为头文件,在前面的包含命令中我们已多次使用过。在".h"文件中包含了常量定义、 类型定义、宏定义、函数原型以及各种编译选择设置等信息。另一类是函数库,包括了各种函数的目标代码,供用户在程序中调用。 通常在程序中调用一个库函数时,要在调用之前包含该函数原型所在的".h" 文