繁体   English   中英

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

[英]Why include header in the method definition file?

假设您有一个名为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”中。这有助于保持可读性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM