C 为什么在方法定义文件中包含头?

C 为什么在方法定义文件中包含头?,c,header-files,function-declaration,C,Header Files,Function Declaration,假设您有一个名为sum.c的源文件,如下所示: #include "sum.h" int sum(int x, int y) { return x+y; } 在自己的定义文件中包含方法的头有什么意义?不应该只在调用sum函数的源文件中包含它吗?如果不包含头文件,您将无法在同一文件中以前声明的其他方法中使用sum方法。这样,如果头文件和源文件中的定义不同,您就可以避免可能出现的问题。在C中这样做是一种很好的做法,因为一个好的编译器应该强调函数的原型和实现。更不用说在更复杂的示例中,您还

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

#include "sum.h"

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

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

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

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

在C中这样做是一种很好的做法,因为一个好的编译器应该强调函数的原型和实现。更不用说在更复杂的示例中,您还可以在头文件中声明函数所需的结构或类似结构。您不想重复此操作,因此需要包含头文件。

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

这取决于头文件中定义的内容。例如,如果有一些类型或宏定义需要sum.c函数和外部文件访问,则需要将其包含在所有位置

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

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

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