📜  头文件和库的区别

📅  最后修改于: 2021-09-15 01:33:41             🧑  作者: Mango

头文件:告诉编译器如何调用某些功能(不知道该功能实际如何工作)的文件称为头文件。它们包含函数原型。它们还包含与库一起使用的数据类型和常量。我们使用#include在程序中使用这些头文件。这些文件以.h扩展名结尾。

库:库是实现实际功能的地方,即它们包含函数体。图书馆主要有两类:

  • 静止的
  • 共享或动态

静态:静态库包含与最终用户应用程序链接的目标代码,然后它们成为可执行文件的一部分。这些库专门在编译时使用,这意味着当用户想要编译他/她的 C 或 C++ 程序,这些库应该出现在正确的位置。在 Windows 中,它们以.lib扩展名结尾,在 MacOS 中以.a结尾。

共享或动态:这些库仅在运行时才需要,即用户可以在不使用这些库的情况下编译他/她的代码。简而言之,这些库在编译时链接起来以解析未定义的引用,然后将其分发给应用程序,以便应用程序可以在运行时加载它。例如,当我们打开游戏文件夹时,我们可以找到许多.dll (动态链接库)文件。由于这些库可以由多个程序共享,因此它们也称为共享库。这些文件以.dll.lib扩展名结尾。在 Windows 中,它们以 .dll 扩展名结尾。

示例:Math.h是一个头文件,它包含函数调用的原型,如 sqrt()、pow() 等,而libm.liblibmmd.liblibmmd.dll是一些数学库。简单来说,头文件就像一张名片,图书馆就像一个真实的人,所以我们使用名片(头文件)来接触真实的人(图书馆)。

让我们以表格形式看看这两者之间的区别,以便可以轻松比较:

Header Files

Library Files

They have the extension .h They have the extension .lib
They contain function declaration and even macros. They contain function definitions
They are available inside “include sub directory” which itself is in Turbo compiler. They are available inside “lib sub directory” which itself is in Turbo compiler.
Header files are human-readable. Since they are in the form of source code. Library files are non-human-readable. Since they are in the form of machine code.
Header files in our program are included by using a command #include which is internally handle by pre-processor. Library files in our program are included in last stage by special software called as linker.
想要从精选的视频和练习题中学习,请查看C 基础到高级C 基础课程