在较高的层面上,我知道我们使用#include
使其他文件中的代码可用于当前文件的语句。但我不明白为什么我们要包含一个头文件,其中包含声明但没有定义。
也许我需要更多地了解编译/链接过程才能完全理解其机制,但是是否有一个我一开始就未能掌握的高级概念?
Edit:所有答案都有助于澄清我的问题,归结为:一旦我们通知编译器在其他地方定义了函数,它如何确定在哪里可以找到该定义?
因为如果你在有定义的地方包含标题,那么在不同的地方.c
文件,你将有多重定义.
声明就足够了,因为它允许编译器生成调用代码,之后链接器负责查找定义并将函数调用链接到实际定义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)