C:为什么我们要包含头文件,声明但不定义?

标签 c include header-files

在高层次上,我了解我们使用 #include 语句来使其他文件中的代码可用于当前文件。但是我不明白为什么我们包含一个头文件,它包含声明但没有定义。

也许我需要了解有关编译/链接过程的更多信息才能完全理解机制,但有没有我一开始就没有掌握的高级概念?

编辑:所有答案都有助于澄清我的问题,归结为:一旦我们通知编译器一个函数在别处定义,它如何确定在哪里找到该定义?

最佳答案

因为如果你在有定义的地方包含标题,在不同的.c文件中,你会有Multiple Definitions

声明就足够了,因为它允许编译器生成调用代码,然后链接器负责查找定义并将函数调用链接到实际定义。

关于C:为什么我们要包含头文件,声明但不定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28743964/

相关文章:

c++ - 如何将此 C++ 模板函数转换为 C 替代函数?

尽管函数和结构是包含的头文件的成员,但 C 错误 : implicit declaration of function and storage size isn't known,

vim - 如何通过 c 文件列出所有包含的头文件(最好在 Vim 中)

c++ - 合并头文件和cpp文件

c++ - G++ 编译器错误 - 此处首先需要合成方法

c++ - 解释c中的头文件路径

c++ - 如何在使用 g++ 编译器时使用 c 样式初始化结构?

c - 如何获取以太网设备列表

ruby-on-rails - 在Ruby on Rails Web应用程序中插入页眉和页脚?

c++ - 什么时候在一个文件中多次包含相同的 header 有用?