假设您有一个名为sum.c的源文件,如下所示:
#include "sum.h"
int sum(int x, int y) {
return x+y;
}
在它自己的定义文件中包含方法的标头有什么意义?您不应该只将它包含在调用sum函数的源文件中吗?
假设您有一个名为sum.c的源文件,如下所示:
#include "sum.h"
int sum(int x, int y) {
return x+y;
}
在它自己的定义文件中包含方法的标头有什么意义?您不应该只将它包含在调用sum函数的源文件中吗?
如果您不包含头文件,您将无法在同一文件中之前sum
声明的其他方法中使用该方法。
如果头文件和源文件中的定义不同,这样可以避免可能出现的问题。
在 C 中这样做是一个很好的做法,因为一个体面的编译器应该突出函数原型和实现之间的差异。更不用说在更复杂的示例中,您还可以在函数所需的头文件中声明结构或类似内容。您不想复制此内容,因此包含头文件。
这取决于您在头文件中定义的内容。例如,如果您有一些类型或宏定义需要同时被 sum.c 函数和外部文件访问,那么您需要在任何地方都包含它。
您可能还希望每个源文件有两个头文件。私有的,仅包含在 sum.c 中。这将包含只有 sum.c 函数需要的东西,它的目的是增加代码的可读性。
第二个“公共”头文件将包含 sum.c 函数的调用者所需的内容。您无需将其包含在 sum.c 文件中。
源文件“sum.c”有函数 sum() 的定义;函数“sum()”的声明包含在头文件“sum.h”中。这有助于保持可读性。
标头可以定义一些对实现有用的类型或宏。最好从标题中获取这些而不是复制它们。