2009-12-10 47 views
4

说你有一个名为sum.c源文件看起来像这样:为什么在方法定义文件中包含头文件?

#include "sum.h" 

int sum(int x, int y) { 
    return x+y; 
} 

什么的方法,包括在它自己的定义文件头的地步?你不应该只将它包含在调用总和函数的源文件中吗?

回答

10

这样可以避免可能出现的问题,如果头文件和源文件中的定义不同。

10

如果您不包含头文件,那么您将无法在其他方法中使用sum方法,该方法在同一个文件中声明之前的

5

在C语言中这是一个很好的做法,只是因为体面的编译器应该强调函数的原型和实现之间的差异。更不用说在更复杂的例子中,你也可以在你的函数需要的头文件中声明一个结构或类似的结构。你不想重复这个,所以你包含头文件。

0

头文件可能定义了一些对实现有用的类型或宏。 从头文件中获取这些信息比复制它们要好。

1

这取决于您在头文件中定义的内容。例如,如果您有一些类型或宏定义需要由sum.c函数和外部文件访问,那么您需要将它包含在任何地方。

您可能还希望每个源文件有两个头文件。一个私人的,只包括sum.c.这将包含sum.c函数所需的东西,其目的是提高代码的可读性。

第二个“公共”头文件将包含sum.c函数调用者需要的东西。你不需要在sum.c文件中包含它。

0

源文件“sum.c”具有sum()函数的定义; 函数“sum()”的声明包含在头文件“sum.h”中。这有助于保持可读性。