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

标签 c

<分区>

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

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

最佳答案

本来是交叉递归的编译问题:

void foo() {
  //bar? what is this function???
  bar();
}

void bar() {
  //I know foo() because it appears before. 
  foo();
}
  • foo 可以调用 bar 只有在它之前定义的情况下。
  • bar 只有定义在foo之前才能调用

那么我们先定义哪个呢???

为了解决这个问题,出现了原型(prototype)

//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();
}

然后原型(prototype)被收集在一个.h文件中。

它后来成为一种很好的做法,因为它将接口(interface)与实现分开。

关于c - 为什么我们在C中包含头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19089686/

相关文章:

c - 将 MS Word 中的大数据表添加到数组中?

c - 如何知道我是否有 C 库?

c - 调用内联函数时 undefined reference

c - 为什么我的新数组只复制并反转旧数组的前 10 个元素?

c - 在循环中生成相同的随机数序列

c++ - 按位运算的性能下降

python - python中动态模块的init函数是什么?

c - 如何在函数调用时正确迭代链表

c++ - char *foo 与 char* foo

char* 和 char[] 不是同一类型?