为什么我们在C
中包含头文件我无法理解在C中添加头文件的需要是什么。我的意思是如果我不使用它们会发生什么
答案 0 :(得分:11)
最初是交叉递归的编译问题:
void foo() {
//bar? what is this function???
bar();
}
void bar() {
//I know foo() because it appears before.
foo();
}
foo
只有在之前定义时才能调用bar
。 bar
只有在foo
时才能调用//prototype of foo()
void foo();
//prototype of bar()
void bar();
void foo() {
// I can call bar() because I know it exists
bar();
}
void bar() {
// I can call foo() because I know it exists
foo();
}
我们首先定义哪一个???
为了解决这个问题,出现了原型。
{{1}}
然后将原型收集到 .h 文件中。
然后它成为一种很好的做法,因为它将界面与实现区分开来。
答案 1 :(得分:4)
大型项目被编译成目标文件“.o”,然后在一个二进制文件中链接在一起。
这意味着在编译时,如果访问位于另一个目标文件中的函数,则编译器不了解它们,因此通过包含.h文件,您可以声明在链接时可用的函数,因此编译信任他们将在那里,而不会引起有关缺少函数的错误。
答案 2 :(得分:3)
实际无需使用它们。它们使您免于包含您在每个源文件中使用的所有函数的定义。头文件只不过是在您使用#include
的位置插入它们的内容。如果您愿意,可以自己编写所有内容。
答案 3 :(得分:3)
百科:
头文件是允许程序员分离某些文件的文件 程序源代码的元素到可重用文件中。头文件 通常包含类,子例程的前向声明, 变量和其他标识符。希望申报的程序员 多个源文件中的标准化标识符可以放置 单个头文件中的标识符,然后其他代码可以包含 每当需要标题内容时。这是为了保持 标题中的接口与实现分开。
答案 4 :(得分:0)
其他头文件中的声明在该文件中不可见,除非您包含标题或提供相同的声明(完全重复)。
使用头文件是在该源文件中使用其他程序最简单(读取:唯一理智)的方法。通过包含,您可以指示编译器读取文件的内容,以便您可以轻松地使用该文件中的任何内容。
答案 5 :(得分:0)
计算机本身无法找到任何东西。这正是我们所说的[程序]。我们所包含的文件也是如此。它给出了我们在程序中使用的命令的基本概念,以便如何制作它work.This信息存在于包含的文件中。
答案 6 :(得分:0)
它对于层次结构设计很有用。您可以在没有c
的情况下编写headers
,然后您将看到每个源文件都变得太大而无法理解或使用,并且当您需要相同的代码时,您需要复制它或重写它。使用'标题',我们可以分别将系统的不同部分写入标题,然后我们可以测试或重用它。