[Powered by Google Translate] NATE哈迪森:在编程中,图书馆是一个集 相关预先写好的代码。 图书馆是如何,我们作为程序员,有着共同的和 有用的代码,与不同的节目中,我们相互 写,甚至运行在不同的进程 同时在我们的电脑上。 让我们探讨一下。 其中比较常见的功能,你可能 一直使用的是printf函数。 现在,printf是不是有些神奇的功能, 硬编码到计算机 - 相反,它是C标准库的一部分,这是 附带的功能的集合 C编程语言。 由于printf是内置于计算机中,这意味着, 有一些程序员究竟是谁走了进去,并写下了 printf函数和捆绑它与其余的标准 库,从而使未来的程序员不会有 重复的努力。 我们相信感激,这样的话,因为检查 出它实际上需要多少代码来实现输出。 C标准库,其中printf是一个部分, 最重要的工具之一,你 在解决CS50。 除了输入输出库其中 printf的生活,还有一堆其他图书馆, 你可能会使用的CS50的过程。 例如,字符串库的功能, 比较C字符串,其长度,然后将它们连接起来。 和数学库为您提供帮助 常量,如pi和e。 现在,相比其他编程标准库 语言,C标准库是非常小的, 但他们仍然有一个重要的东西。 这并不是说,标准库是 C库,也有许多在那里的 供您使用,包括CS50图书馆的世界, 制图库加密和解密 函数,库函数进行编码和 回放视频,等等。 这给我们带来了一个重要的一边。 工程的基本技能之一是知道的 在你的工具箱中的工具,使您可以使用 他们和避免重新发明轮子,除非 你必须这样做。 作为程序员,库是一个最重要的 我们的工具。 当你发现自己面临着一个任务,这似乎单调乏味或 司空见惯,就像找到一个C字符串的长度, 应该问自己,如果可能的情况下, 已经有人做了同样的事情之前。 有机会,你可以找到一些 帮助在图书馆。 因此,在技术方面,图书馆是一个二进制文件, 已产生的连接在一起的集合 使用工具的目标文件调用,你 猜对了,连接器。 目标文件是o文件,你当你 编译C源代码。 当程序员编写的库,他们通常 他们的C代码分离成两种类型的文件: 头文件和实现文件。 按照惯例,一个头文件。h文件扩展名, 它包含的代码,声明该库的 资源供您使用。 这些资源包括函数,变量,结构, 类型定义,以及等等,并在一起,它们是 通常称为作为接口。 事实上,如果你曾经想知道什么是在图书馆, 头文件的地方去寻找。 例如,你可以拉起来USR /包括/ stdio.h和检查 一切你曾经想知道 标准IO库。 有很多东西在这里,它可以采取一些 涉水通过。 然而,随着谷歌和联机帮助页,这是 地方去,如果你想知道如何使用标准I / O 库函数的工作。 因此,这里要注意的一个关键的事情,不过,就是这个头文件 通常不包括函数定义 - 也就是说,实际的功能实现。 这是一个重要的计算机科学的图示 原则叫做信息隐藏,也被称为在 倍封装。 由于用户或客户端的一个库,则不需要 了解库中的内部 为了使用它。 还记得看到输出只是有点? 如果你实际的代码之前见过吗? 嗯,我认为即使你没有,你可能 用的printf吨的次数。 你必须知道的是函数的声明存在 在stdio.h头文件。 总之,良好的信息隐藏的利益是你 你写的程序是绝缘的任何变化 的库函数的实现代码。 如果执行的printf的变化,你不必 去改变所有你的程序中使用printf。 那么,实施去了? 好了,再次,按照惯例,实施“在 。c文件扩展名的文件。 通常情况下,头文件和实现文件齐头并进 在手,所以,如果你已经声明了一堆新的字符串 在mystring.h的功能,然后你可以定义所有的 这些功能在mystring。 那么接下来的头文件和实现文件,然后 编译,创建目标文件,然后链接 在一起,产生的二进制库文件。 库编写者将附带的二进制文件,以及 程序员谁想要使用的头文件 该库。 在这一点上,C语言实现文件 需要,除了从头开始,所以重新编译该库 他们经常离开了。 要使用C库,你必须做两件事情。 首先,你必须包括库的头文件和 你想使用源代码文件 库中的代码。 这告诉编译器,所有的声明 函数,变量,结构,等等,目前在 头文件,以便编译器之一,确保 您正在使用图书馆的资源以适当的方式, 2,生成相应的汇编代码。 根据库的头文件 位于的#include语法各不相同。 如果头文件位于系统的 默认情况下包括目录 - 通常情况下,usr/include-- 然后尖括号语法时,如在#include 。 然而,如果头文件都位于相同的 目录作为自己的代码,双引号的语法是 使用#“包括”mylib.h。 你所要做的第二件事是链接的二进制 库文件时,编译你的代码。 这是一个超级的重要步骤。 还记得我们前面的讨论中,关于如何头 文件不包含实现代码吗? 如果你忘了这一步,你会得到错误信息 在你的代码中未定义的符号引用。 要解决此问题,请使用-l标志,后面紧跟 没有空间的库名称。 在许多系统,包括家电,C标准 库将自动为您联系。 然而,有时被捆绑的数学库分别 可能需要链接时使用-lm。 在设备上,我们为你照顾,我们也 链接CS50图书馆,lcs50的。 当你运行时,在设备上,你可以看到这一切。 现在你应该有你需要使用的知识 C.库中尽情探索。 我的名字是Nate哈迪森,这是CS50。