为什么函数的定义与声明分开?

时间:2016-04-29 08:01:47

标签: c++ c gcc

为什么函数的定义不是与它们的声明一起写在同一个“some.h”文件中?如果我们不是从“some.c”文件中单独的“some.h”文件会发生什么?

2 个答案:

答案 0 :(得分:1)

因此,人们知道他需要知道的最低限度。 (这使得编译速度更快,名称冲突的可能性更小,管理代码的能力更容易等)正如Kerrek SB在this comment中所提到的:如果混合源代码和代码,将大型项目划分为模块是很困难的。

例如,您可以编译一个库(包含定义)并将其提供给您的客户端(只关心接口)以及声明(Headers),并且他可以使用它而无需知道源代码实施。 (这样你也可以隐藏实现细节)

没有标题,他不知道库中可用函数的使用情况。因此,虽然不是强制性的,但建议将声明和定义分开。

答案 1 :(得分:0)

事实上,分离声明和定义并不是强制性的,而在实践中,所有内容都被认为是分离使用和实现的方式,这是为了促进抽象,可重用性,模块化等。

如果您不遵守这些规则,那么您将很快面临多个定义的编译问题等。