具有头文件头文件的缺点是什么?

Tal*_*ria 0 c

我进入了一个项目,该项目采用了一个头文件的方法,MyProject.h该文件包含每个.c文件的所有头文件.每个.c文件都有自己的头文件#include "MyProject.h",无论需要什么库,还有文件所需的任何其他声明.

对我来说,这似乎是多余的,有点不自然,但它编译并随后按预期运行.我的想法是编译器会做更多的工作而不是必要的,并且可能会使.exe过度膨胀.这样做的缺点是什么?

我接下来的一个问题就是说,我使用上面的例子在一个文件中包含了一个像Time.h这样的库.由于MyProject.h,编译器是否只将Time.h构建到二进制文件或现在的每个文件中?结构,枚举等怎么样?

Lun*_*din 5

拥有这样的头文件是不好的做法和糟糕的设计.问题是它会在项目的每个文件之间创建紧密耦合依赖关系,即使它们完全不相关.

好的程序设计是创建仅包含他们正在使用的资源的自主模块.他们应该从他们自己的h文件中执行此操作,以准确记录特定模块具有的依赖关系.