头文件和库的区别

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

  • 静态库
  • 共享或动态库

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

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

示例: math.h 是一个头文件,其中包含诸如:sqrt()pow() 等函数调用的原型,而 libm.liblibmmd.liblibmmd.dll 是一些数学库。 简单来说,头文件就像一张名片,库就像一个真实的人,所以使用名片(头文件)来访问真实的人(库)。
让我们以表格形式看看这两者之间的区别,以便可以轻松比较:

头文件 库文件
扩展名为:.h 扩展名为:.lib
它们包含函数声明甚至宏。 它们包含函数定义
它们位于 Turbo 编译器中的“包含子目录”中。 它们位于 Turbo 编译器中的“lib 子目录”中。
头文件是人类可读的,因为它们是源代码的形式。 库文件是非人类可读的,因为它们是机器码的形式。
程序中的头文件是通过使用 #include 命令来包含的,该命令由预处理器在内部处理。 程序中的库文件被称为链接器的特殊软件包含在最后阶段。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/264196.html

(0)
上一篇 2022年6月7日
下一篇 2022年6月7日

相关推荐

发表回复

登录后才能评论