一般我们会在某个C语言源码文件(如a.c)中使用"include"指令包含其它的文件(如b.h或者b.c).
这样设想:
// file: a.c
include "b.h"
//可能有include "b.c"
//main()
// file: b.h
// 函数声明等
// file: b.c
include "b.h"
// 函数定义
我们可以先把b.c编译为模块b.o
gcc -c b.c
然后编译a.c
gcc a.c b.o
或者我们在a.c文件中直接包含b.c那么就可以这样编译:
gcc a.c
在C语言的实现惯例中,.c文件用于封装在功能逻辑上较为接近的一组实现代码,并且使用.h对外提供必要的接口声明,是一种实现信息隔离和隐藏的基本手段。如果在.c中包含其它.c则违反了这一原则,也降低整个工程的清晰程度,通常不推荐使用。 Reply