通常,在一个C程序中,只包含两类文件——.c文件和.h文件。
C支持“分别编译”(separate compilation)。也就是说,一个程序所有的内容,可以分成不同的部分分别放在不同的.c文件里。.c文件里的东西都是相对独立的,在编译(compile)时不需要与其他文件互通,只需要在编译成目标文件后再与其他的目标文件做一次链接(link)就行了。
所谓的头文件,其实它的内容跟.c文件中的内容是一样的,都是C的源代码。但头文件不用被编译。我们把所有的函数声明全部放进一个头文件中,当某一个.c源文件需要它们时,它们就可以通过一个宏命令 “#include”包含进这个.c文件中,从而把它们的内容合并到.c文件中去。当.c文件被编译时,这些被包含进去的.h文件的作用便发挥了。
举一个例子吧,假设所有的数学函数只有两个:f1和f2,那么我们把它们的定义放在math.c里:
/* math.c */
double f1()
{
//do something here….
return;
}
double f2(double a