为什么我们在C中包含头文件

时间:2013-09-30 08:30:49

标签: c

为什么我们在C

中包含头文件

我无法理解在C中添加头文件的需要是什么。我的意思是如果我不使用它们会发生什么

7 个答案:

答案 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,然后您将看到每个源文件都变得太大而无法理解或使用,并且当您需要相同的代码时,您需要复制它或重写它。使用'标题',我们可以分别将系统的不同部分写入标题,然后我们可以测试或重用它。