为什么将.c文件包含到其他.c文件中是个坏主意,而将.h文件包含到.c文件中更好?

时间:2017-03-07 19:38:44

标签: c

为什么我们不应该将多个.c文件包含在一个.c文件中,以防我们在那些多个.c文件中声明?

例如,我在a.c,b.c和d.c中声明了变量x,y,z,并且我将这些文件包含在一个源文件rd.c中,那么为什么这是一个糟糕的编程习惯。

相反,如果我在一个.c文件中包含多个头文件,那么这是一个很好的做法,将多个.c文件包含在一个源文件中并将多个.h文件包含到一个.c文件中的基本区别是什么?

2 个答案:

答案 0 :(得分:3)

是的,您可以将.y文件包含到.c文件中。而你只能只有一个文件。这是可能的,不会违反标准。

每个"模块"有两个文件的原因是的,您可以区分.h文件中的公共部分和.c文件中的私有部分。这允许开发人员将出版物限制为所需的内容。源代码的所有其他部分都保密。这称为information hiding,是软件架构的重要组成部分。你可以谷歌。

因此,您可能在.c文件中有声明。但这个声明是私密的。 不得被其他人阅读。

除此之外,.c文件可以编译形式编译和部署。因此,您没有要包含的任何.c文件。

答案 1 :(得分:1)

.c文件包括函数实现,而不仅仅是声明。虽然这可能看起来无害,但如果你包括它们,如果你不小心包含了两次实现,那么很难找到。包括两次声明是好的,只要它们相同即可。但是包含两次实现是一个很难找到的编译器错误。

此外,大多数编译都是使用构建文件完成的,该文件在某处具有源文件列表。在一个地方导航源文件的中央列表比在一系列文件的include指令中导航要容易得多。

这就是说包含.h文件而不是.c文件可以减少出错的可能性,并使调试更容易。