[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。