C - 使用 .h 文件
C - Using .h files
我正在为一项课程作业学习 C。让我感到困惑的一件事是 header 个文件。我试图找到有关我的问题的一些信息,但无济于事。
我的问题是,假设我有 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 文件执行相同的操作(更改我们包含的 header 文件)。
不使用该约定,将所有 3 个 classes 文件的所有原型添加到一个 header 中是否可以,比如 header.h,并将其包含在所有 3 classes 中?这个问题是 3 classes 将有函数原型已经包含在这个 class 中,但我不认为这是一个问题(我是 C 的初学者,所以我可以错了)。
谢谢。
你的建议是允许的,但不推荐。将所有原型集中在一个 header 中会在编译和构建方面花费您。尝试专注于 "why header files are used?"。如果你得到这个答案,你将避免在一个 header 文件中添加所有内容。 header 文件用于模块化以仅提供源文件所需的信息。其次,在大型项目中,您必须定义 "private" header 文件,这些文件由您的代码在内部使用并且对外部单词不可见。当然,您将向其他用户提供 header 文件以便使用您的代码。
所以即使在你开始学习的时候就把所有的原型都放在一边是不可取的。作为初学者,每个源文件制作一个 header 文件。
编辑
如果您的 header1.h 具有函数 function1(),无论您在哪里(所有源文件)使用 function1(),您都将添加 header1.h
我正在为一项课程作业学习 C。让我感到困惑的一件事是 header 个文件。我试图找到有关我的问题的一些信息,但无济于事。
我的问题是,假设我有 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 文件执行相同的操作(更改我们包含的 header 文件)。
不使用该约定,将所有 3 个 classes 文件的所有原型添加到一个 header 中是否可以,比如 header.h,并将其包含在所有 3 classes 中?这个问题是 3 classes 将有函数原型已经包含在这个 class 中,但我不认为这是一个问题(我是 C 的初学者,所以我可以错了)。
谢谢。
你的建议是允许的,但不推荐。将所有原型集中在一个 header 中会在编译和构建方面花费您。尝试专注于 "why header files are used?"。如果你得到这个答案,你将避免在一个 header 文件中添加所有内容。 header 文件用于模块化以仅提供源文件所需的信息。其次,在大型项目中,您必须定义 "private" header 文件,这些文件由您的代码在内部使用并且对外部单词不可见。当然,您将向其他用户提供 header 文件以便使用您的代码。 所以即使在你开始学习的时候就把所有的原型都放在一边是不可取的。作为初学者,每个源文件制作一个 header 文件。
编辑
如果您的 header1.h 具有函数 function1(),无论您在哪里(所有源文件)使用 function1(),您都将添加 header1.h