我正在学习C课程作业。令我困惑的一件事是头文件。我试图找到一些关于我的问题的信息无济于事。
我的问题是,我说有3个不同的.c文件。该约定(至少来自阅读源) - 每个.c文件都有它自己的.h文件,例如: parser.c有parser.h,lexer.c有lexer.h,typechecker.c有typechecker.h(如果我们正在编译器)。
然后我们继续添加声明:
#include "parser.h"
#include "typechecker.h"
在lexer.c文件中,并对其他.c文件执行相同操作(更改我们包含的头文件)。
可以将所有3个类文件的所有原型添加到一个标题中,例如header.h,而不是使用该约定,只需将其包含在所有3个类中< / S>?这个问题是3个类将有已经包含在这个类中的函数原型,但我不认为这是一个问题(我是C的初学者,所以我可能错了)。
感谢。
答案 0 :(得分:0)
你的建议是允许的,但不推荐。将所有原型放在一个标题中将使您在编译和构建方面付出代价。尝试专注于&#34;为什么使用头文件?&#34;。如果你得到这个答案,你将不会在一个头文件中添加所有内容。头文件用于模块化,仅为源文件提供所需的信息。其次,在大型项目中,您必须定义&#34;私人&#34;头文件,由您的代码在内部使用,对外部单词不可见。当然,您将为其他用户提供头文件以便使用您的代码。 所以即使在你开始学习的时候也不建议把所有的原型。作为启动器,为每个源文件创建一个头文件。
修改
如果你的header1.h有函数function1(),你在哪里(所有源文件)使用function1(),你将添加header1.h