为什么在方法定义文件中包含标题?

时间:2009-12-10 08:50:11

标签: c header-files function-declaration

假设您有一个名为 sum.c 的源文件,如下所示:

#include "sum.h"

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

将方法的标题包含在自己的定义文件中有什么意义?你不应该只将它包含在调用 sum 函数的源文件中吗?

6 个答案:

答案 0 :(得分:10)

如果您不包含头文件,则无法在同一文件中之前声明的其他方法中使用sum方法。

答案 1 :(得分:10)

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

答案 2 :(得分:5)

在C语言中这样做是很好的,因为一个体面的编译器应该强调函数原型和实现之间的差异。更不用说在更复杂的示例中,您可能还会在函数需要的头文件中声明一个结构或类似物。您不想复制它,因此请包含头文件。

答案 3 :(得分:1)

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

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

第二个“public”头文件将包含sum.c函数调用者所需的内容。您不需要在sum.c文件中包含它。

答案 4 :(得分:0)

标头可以定义一些对实现有用的类型或宏。 从标题中获取这些内容比复制它们更好。

答案 5 :(得分:0)

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