不简单的hello world之C标准库(第二部分)

本文继续探讨C标准库,介绍了库的定义、生成、内容和分类,重点讲解了动态库和静态链接库的区别,并引入了标准库的概念,阐述了其优点,特别是对于程序可移植性的贡献。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

库(Library)

 

1 库(Library)的定义

2 为什么需要库

3 库是如何生成

4 库里面有什么

5 库的分类

6 如何创建库

7 什么是标准库

8 标准库的优点


这是承接上一篇文章《不简单的hello world值C标准库第一部分》。我们继续该主题的内容。

 

4. 库里面有什么


我们在上一节当中介绍了库是如何生成的,那么库里面有什么呢,关于这个问题可能有的同学会问了,你不是说了吗,里面不就是包含了我们写的程序的二进制CPU可以读懂的形式吗,亲爱的同学们,在上一节中主要是来讲述库如何生成的,所以这样说是为了为了让大家更容易的理解上一节,真实的情况是库里面不仅仅是包含了二进制指令,仅仅是指令是不够的,还需要的一项是什么呢,有的同学可能已经猜到了,那就是数据,关于库里面有什么同样不是能在这一小节中能完整描述的,我会在后面的文章给大家详细讲解,库里面到底有什么。敬请期待。

 

5. 库的分类


和任何东西一样,库也是有分类的。不用担心,库的分类很简单,就只有两种,动态库(Dynamic Library)和静态链接库(Static library)。

在Windows世界中,动态链接库就是大名鼎鼎的.dll结尾的文件,静态库是以.lib结尾的文件。

在Linux世界中,动态链接库是以.so结尾的文件,而静态库是以.a结尾的文件。

比如在Linux中,你有一个用来进行数学计算的库math,那么生成的动态库的名字就是libmath.so, 而对应的静态库的名字叫做libmath.a。如下图所以:

静态库

如图所示,这里希望强调的一点就是,同样的一份代码,我们即可以使用链接器(Linker)生成动态链接库,也可以生成静态链接库,至于是如何生成的,这两种库实现上有什么差别,同样的我会在下一篇文章当中给大家详细讲解。

可能又有同学继续问了,为什么这么麻烦的有两种库呢,又是动态链接库又是静态链接库的,这是很重要的一个问题,同样不适合在这里简单的描述描述,

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值