头文件和库文件有什么区别?

83

我很难理解编译器是如何工作的,特别是在处理头文件和库文件时容易混淆。希望有人能够帮我澄清一下。


1
C和C++是不同的编程语言。它们都是规范- 而非软件!- 根据某些标准编写的(主要用英语编写),例如[n1570](http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf)用于C和[n3337](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf)用于C ++。 - Basile Starynkevitch
16个回答

1
我认为库是一组代码的包,这些代码被重复使用并且已经预编译,因此以标准形式提供,这样我们就不必为每个开发的程序编写该代码。 头文件包含对该代码的引用,例如我们在程序中使用的“cin”和“cout”函数在标准库中完全定义,而像iostream头文件这样的头文件包含对该代码的引用。 因此,当我们编译代码时,我们只需获取针对cin和cout的预编译代码,而无需每次使用时编写cin和cout的代码。 或者更简单地说,库包含所有函数的代码,而头文件是访问该代码的方式。

1
一个头文件描述了如何调用功能,库包含实现此功能的已编译代码。

0

库就像裹着白色长线的死木乃伊一样。它们是死的。唯一释放它们的方法是通过头文件。头文件包含将它们复活的方法,它们可以被多次复活(代码重用)。


3
这个比喻有点太抽象了。 - byxor

0
改写一个经典的笑话,区别在于库文件有头文件而头文件没有库。

0
你可以考虑这个例子来理解- Math.h 是一个头文件,其中包含了像sqrt()pow()等函数调用的原型,而libm.liblibmmd.liblibmmd.dll是一些数学库。简单来说,头文件就像名片,库就像真实的人,所以我们使用名片(头文件)来联系到实际的人(库)。

-4

库中的代码只会在需要时存储为头文件。整个头文件将被存储,这样可以节省处理器存储空间。


欢迎来到StackOverflow,并感谢您的尝试帮助。但是,如果您重新表达以提高清晰度和可读性,则您的答案可能会更有帮助。使用一些Markdown进行格式化可能会有所帮助。标题和库之间的区别具有比存储多少更重要的其他方面。 - Yunnosch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接