4

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

#include "sum.h"

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

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

4

6 回答 6

10

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

于 2009-12-10T08:53:36.263 回答
10

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

于 2009-12-10T08:54:04.033 回答
5

在 C 中这样做是一个很好的做法,因为一个体面的编译器应该突出函数原型和实现之间的差异。更不用说在更复杂的示例中,您还可以在函数所需的头文件中声明结构或类似内容。您不想复制此内容,因此包含头文件。

于 2009-12-10T08:54:21.230 回答
1

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

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

第二个“公共”头文件将包含 sum.c 函数的调用者所需的内容。您无需将其包含在 sum.c 文件中。

于 2009-12-10T08:56:06.680 回答
0

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

于 2009-12-10T12:02:33.980 回答
0

标头可以定义一些对实现有用的类型或宏。最好从标题中获取这些而不是复制它们。

于 2009-12-10T08:54:22.240 回答