这是我自己的理解:
无论是系统自带的头文件还是自己写的头文件,(.h文件),这个文件里面包含了函数的声明,没有实现,实现是放在一个.c文件中,不过这个.c文件已经编译好了,编译成.object文件,运行程序的时候直接链接object文件就行。(C程序的运行包括两部分,一部分是编译成object文件,一部分是将一些object文件链接成可执行文件)。所以这个过程是这样的,#include是告诉编译器,主程序中可能要用到外面的一个函数,编译器就根据这个include给出的头文件名,去查找这个头文件,头文件里包含了要用到的这个函数的声明,然后又去找到具体的这个函数的实现,这个函数已经编译好了,为一个object文件,不用再浪费时间编译了,运行程序的时候连接就可以了。