每个.C或.cpp文件应该有一个头(.h)文件吗?
假设有以下C文件:
> Main.C
Func1.C
Func2.C
> Func3.C
> Main.h
Func1.h
Func2.h
> Func3.h
什么是更好的方法?
解决方法
有一个main.h是不寻常的,因为编译时通常没有什么需要暴露给其他编译单元. main()本身需要暴露链接器/启动代码,但是它们不使用头文件.
您可以每个C文件都有一个头文件,或者很可能是C文件相关组的头文件.
一个例子是,如果你有一个BTree实现,并且在自己的C文件中添加,删除,搜索等等,以便在代码更改时最大限度地减少重新编译.
在这种情况下,每个C文件都有单独的头文件,因为标题是API,而是向用户的库视图.我怀疑用户想要包含6个头文件才能使用这些功能.将有一个btree.h文件和一个btree.lib文件,其中包含从各个C文件构建的所有BTree对象.
另一个例子可以在标准的C头文件中找到.我们不知道stdio.h函数是否有多个C文件(这是我该怎么做,但这不是唯一的方法),但即使有,它们被视为一个单位的API.您不必包括stdio_printf.h,stdio_fgets.h等等 – C运行时库的标准I / O部分有一个stdio.h.