在高层次上,我了解我们使用 #include
语句来使其他文件中的代码可用于当前文件。但是我不明白为什么我们包含一个头文件,它包含声明但没有定义。
也许我需要了解有关编译/链接过程的更多信息才能完全理解机制,但有没有我一开始就没有掌握的高级概念?
编辑:所有答案都有助于澄清我的问题,归结为:一旦我们通知编译器一个函数在别处定义,它如何确定在哪里找到该定义?
最佳答案
因为如果你在有定义的地方包含标题,在不同的.c
文件中,你会有Multiple Definitions。
声明就足够了,因为它允许编译器生成调用代码,然后链接器负责查找定义并将函数调用链接到实际定义。
关于C:为什么我们要包含头文件,声明但不定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28743964/