c语音中的库是什么

实际开发中,程序员要经常和各种库打交道,比如用 Qt、Tkinter、JavaFx 等图形界面库开发用户界面,用 OpenCV、Pillow 等图像处理库处理图像,用 NumPy、TensorFlow 等数学计算库进行数据处理等。

本教程将带领大家系统地学习链接库,链接库就属于库的一种。考虑到很多初学者对库的概念一知半解,作为本专题的第一篇文章,先给大家解释清楚什么是库。

什么是库 

库(Library)本意指的是存放钱、粮、物品的场所,比如粮库、油库、仓库等。程序员使用的库,存放的全部是写好的代码,所以全称叫做代码库。

代码库可以简单地认为是一系列函数的集合,在硬盘上往往是一个文件夹,里边包含多个(≥1)代码文件。例如,下面是我用 C 语言写好的一个代码库,它的功能非常简单,只包含一个名为 myMath.c 的源代码文件:

//myMath.c
int add(int a, int b) {
    return  a + b;
}

int sub(int a, int b) {
    return  a - b;
}

int mul(int a, int b) {
    return  a * b;
}

int div(int a, int b) {
    if (b != 0) {
        return a / b;
    }
    return -1;
}

myMath.c 中有 4 个函数,可以完成两个整数的四则(加、减、乘、除)运算。把 myMath.c 添加到某个 C 语言项目里,就可以直接调用这 4 个函数完成四则运算,每个函数可以调用很多次。

在实际开发中,直接使用现成的代码库能够节省开发成本,提高开发效率,并且很多库都是编程专家写好的,库代码的执行效率、严谨性、安全性和规范性往往要优于我们自己编写的代码。市面上有很多优秀的代码库,有的收费,有的免费,我们要善于利用这些库,尽量不要重复造轮子。

通常情况下,我们将代码库细分为以下两种:

  • 标准库(Standard Library):编程语言的开发者在开发编程语言的时候,一般都要预先写好常用的代码,或者说常用的功能,例如输入输出、数学计算、文件操作、网络操作、日期时间、错误处理、字符串处理等,这些由官方编写的库称为标准库,它们随编程语言一起发布,可以认为是编程语言的一部分。
  • 第三方库(Third-party Library):有一些组织机构或者个人也会开发一些库,有的是为了盈利,有的是业余爱好,有的是本公司正在使用的代码,开源出来造福人类,这些库称为第三方库。


也就是说,标准库指的是官方(编程语言的开发者)编写的代码库,学习编程语言时会顺带着一起学习;第三方库指的是非官方(组织机构或者个人)编写的代码库,没有质量把控,良莠不齐,需要单独花精力了解它们的功能和用法。

事实上,有相当一部分第三方库也是非常优秀的,已经得到了大家的认可,已经应用在大公司的项目开发中,这些库能够和标准库媲美。

开源库VS闭源库

根据拥有者是否公开库的源代码,库又可以分为两类,分别是开源库(Open-source Library)和闭源库(Closed-source Library)。

开源库指的是公开源代码的库,任何人都可以查看、使用和修改库的代码。下面列举了开源库的一些好处:

  • 通过公开库的源代码,拥有者可以邀请其他人为库的更新和维护贡献力量,共同推动项目的发展;
  • 对所有人公开库的源代码,任何人都可以审查代码,确保库中没有潜在的漏洞、后门等,有助于和用户建立信任;
  • 有更多人对库代码进行测试和改进,有助于提高代码库的质量和可靠性;
  • 开源库可以展示拥有者的技术实力,增加知名度和声誉,有助于吸引更多潜在用户和合作伙伴的注意,带来更多商业机会和合作。

注意,开源和免费是两个不同的概念,开源的目的也不是做慈善事业。开源库的盈利模式有很多,比如在免费版本基础上迭代一个收费的商业版本、为用户提供有偿的技术支持、通过提供技术文档、培训、二次开发支持等服务获得收益等。

除了开源库,剩下的都是闭源库,也就是那些不公开源代码的库。

库的拥有者可以选择不公开库的源代码,而是将所有源代码编译成二进制代码,然后只公开二进制版本的库。以下是闭源库的一些好处:

  • 对于普通用户来说,二进制代码是不可读的,只公开二进制版本的代码库,可以隐藏库的具体实现细节,大大避免抄袭代码、篡改等情况的发生,保护自己知识产权。
  • 拥有者可以将闭源库作为付费产品进行销售,从而获取收入。此外,库的拥有者可以为客户提供专业的技术支持和维护服务,也可以从中获得收益;
  • 由于库的源代码不公开,攻击者难以发现库代码中潜在的漏洞,增加了攻击的难度;
  • 通过只公开库的二进制版本,拥有者能够更好地控制代码库的更新方向和版本,确保库的稳定性和一致性。


注意,开源库和闭源库都存在二进制的版本。大多数闭源库公开的就是二进制版本;开源库公开了源代码,只要把所有源代码编译成二进制代码,就能生成它的二进制版本。

本教程要讲的链接库,本质上就是二进制版本的代码库。关于链接库更多的具体细节,请看在线书籍54笨鸟

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值