1 00:00:06,692 --> 00:00:09,470 [Powered by Google Translate] NATE Хардисон: В программировании, библиотека представляет собой набор 2 00:00:09,470 --> 00:00:11,380 связанных Стандартная код. 3 00:00:11,380 --> 00:00:14,350 Библиотеки, как мы, программисты, общие и 4 00:00:14,350 --> 00:00:16,930 Код полезными друг с другом, с различными программами мы 5 00:00:16,930 --> 00:00:19,470 писать, и даже с различными процессами, запущенными на 6 00:00:19,470 --> 00:00:21,380 то же время на наших компьютерах. 7 00:00:21,380 --> 00:00:23,000 >> Давайте рассмотрим немного. 8 00:00:23,000 --> 00:00:25,070 Один из наиболее распространенных функций, которые вы, вероятно, 9 00:00:25,070 --> 00:00:27,500 использует это Е функция. 10 00:00:27,500 --> 00:00:29,820 Теперь, Printf это не какая-то магическая функция, которая была 11 00:00:29,820 --> 00:00:31,670 жестко запрограммировано в компьютере - 12 00:00:31,670 --> 00:00:34,320 скорее, это часть стандартной библиотеки C, которые являются 13 00:00:34,320 --> 00:00:36,080 набор функций, который поставляется с 14 00:00:36,080 --> 00:00:38,050 C язык программирования. 15 00:00:38,050 --> 00:00:40,920 С Printf не встроен в компьютер, это означает, что 16 00:00:40,920 --> 00:00:43,520 было некоторое программиста, который на самом деле пошел и написал 17 00:00:43,520 --> 00:00:46,310 Е функция и в комплекте с остальной стандартной 18 00:00:46,310 --> 00:00:48,880 Библиотеки так, чтобы будущие программисты не придется 19 00:00:48,880 --> 00:00:50,310 дублирования усилий. 20 00:00:50,310 --> 00:00:52,620 И мы уверены, что благодарна, что это так, потому что проверить 21 00:00:52,620 --> 00:00:54,710 , сколько кода на самом деле требуется для осуществления Printf. 22 00:00:59,590 --> 00:01:02,860 >> C стандартные библиотеки, которые Printf является частью являются 23 00:01:02,860 --> 00:01:04,480 одним из самых важных инструментов 24 00:01:04,480 --> 00:01:06,770 есть в решении CS50. 25 00:01:06,770 --> 00:01:08,780 В дополнение к ввода-вывода библиотеки, где 26 00:01:08,780 --> 00:01:11,370 Printf жизни, есть куча других библиотек, которые 27 00:01:11,370 --> 00:01:14,230 Вы, вероятно, использовать в течение CS50. 28 00:01:14,230 --> 00:01:16,730 Например, строка библиотека функций 29 00:01:16,730 --> 00:01:20,960 C сравнить строки, чтобы их длина, и объединить их. 30 00:01:20,960 --> 00:01:22,410 И математические библиотеки дает Вам полезными 31 00:01:22,410 --> 00:01:25,062 константы, как пи и е. 32 00:01:25,062 --> 00:01:27,650 Теперь, по сравнению со стандартными библиотеками других программ 33 00:01:27,650 --> 00:01:31,190 языки, C стандартные библиотеки очень небольшой, 34 00:01:31,190 --> 00:01:34,060 но они все еще имеют значительное количество материала. 35 00:01:34,060 --> 00:01:36,370 И это не означает, что стандартные библиотеки 36 00:01:36,370 --> 00:01:39,020 Только C библиотеки, есть еще много там, в 37 00:01:39,020 --> 00:01:42,460 мир для вас использовать, в том числе CS50 библиотеки, 38 00:01:42,460 --> 00:01:45,150 картографии библиотеки шифрования и дешифрования 39 00:01:45,150 --> 00:01:48,000 Функции, библиотек с функциями для кодирования и 40 00:01:48,000 --> 00:01:50,970 воспроизведение видео, и так далее. 41 00:01:50,970 --> 00:01:53,190 >> Это подводит нас к важной стороне. 42 00:01:53,190 --> 00:01:55,500 Одним из важнейших навыков инженерно зная, 43 00:01:55,500 --> 00:01:58,090 инструментов, доступных в вашей панели инструментов, так что вы можете использовать 44 00:01:58,090 --> 00:01:59,850 их и не изобретать колесо, если 45 00:01:59,850 --> 00:02:01,510 Вы должны сделать это. 46 00:02:01,510 --> 00:02:04,120 Как программисты, библиотеки являются одним из наиболее важных 47 00:02:04,120 --> 00:02:05,520 инструменты у нас есть. 48 00:02:05,520 --> 00:02:08,520 Когда вы окажетесь перед задачей, которая кажется утомительным или 49 00:02:08,520 --> 00:02:11,940 обычным делом, как найти длину строки C, вы 50 00:02:11,940 --> 00:02:14,020 Следует спросить себя, если он может быть так, что 51 00:02:14,020 --> 00:02:16,520 кто-то уже сделал то же самое раньше. 52 00:02:16,520 --> 00:02:17,760 Скорее всего, что вы могли бы найти некоторые 53 00:02:17,760 --> 00:02:20,110 помощь в библиотеке. 54 00:02:20,110 --> 00:02:23,260 >> Таким образом, с технической точки зрения, библиотека представляет собой бинарный файл, что 55 00:02:23,260 --> 00:02:26,210 была произведена путем связывания вместе коллекция 56 00:02:26,210 --> 00:02:28,880 Объект файлов с помощью инструмента под названием, вы 57 00:02:28,880 --> 00:02:31,010 догадались, компоновщик. 58 00:02:31,010 --> 00:02:33,830 Объект файлы тех. Вывода файлов, которые вы получаете, когда вы 59 00:02:33,830 --> 00:02:35,860 компиляции C исходный код. 60 00:02:35,860 --> 00:02:38,420 Когда программисты пишут библиотеки, они обычно 61 00:02:38,420 --> 00:02:41,560 отделить их C код в файлы двух типов: 62 00:02:41,560 --> 00:02:44,880 заголовочные файлы и файлы реализации. 63 00:02:44,880 --> 00:02:49,820 Заголовка файла в соответствии с соглашением с учетом. Ч расширение файла, 64 00:02:49,820 --> 00:02:51,940 и содержит код, который объявляет библиотеки 65 00:02:51,940 --> 00:02:55,120 ресурсов, которые доступны для вас использовать. 66 00:02:55,120 --> 00:02:58,830 Эти ресурсы включают в себя функции, переменные, структуры, 67 00:02:58,830 --> 00:03:01,980 определения типа, и так далее, и вместе они 68 00:03:01,980 --> 00:03:04,620 обычно называют интерфейс. 69 00:03:04,620 --> 00:03:07,280 В самом деле, если вы когда-нибудь интересно, что в библиотеке, 70 00:03:07,280 --> 00:03:09,580 файлы заголовков являются местом для поиска. 71 00:03:09,580 --> 00:03:14,030 >> Например, вы можете подтянуть USR / включать / stdio.h и проверить 72 00:03:14,030 --> 00:03:16,210 все, что вы когда-либо хотели знать о 73 00:03:16,210 --> 00:03:18,570 Стандартная библиотека ввода-вывода. 74 00:03:18,570 --> 00:03:20,610 Там очень много вещей здесь, и это может занять немного 75 00:03:20,610 --> 00:03:22,420 времени, чтобы пробраться через. 76 00:03:22,420 --> 00:03:25,840 Однако, наряду с Google и страницы руководств, это 77 00:03:25,840 --> 00:03:28,060 место, чтобы пойти, если вам интересно, как стандартный I / O 78 00:03:28,060 --> 00:03:30,460 библиотечные функции работают. 79 00:03:30,460 --> 00:03:33,910 Так что ключевая вещь, чтобы отметить здесь, однако, является то, что файлы заголовков 80 00:03:33,910 --> 00:03:36,740 как правило, не включают функцию определения - 81 00:03:36,740 --> 00:03:40,020 то есть, фактическая реализация функции. 82 00:03:40,020 --> 00:03:42,470 Это иллюстрация из важных компьютерных наук 83 00:03:42,470 --> 00:03:45,700 Принцип называется сокрытие информации, также упоминается в 84 00:03:45,700 --> 00:03:48,960 раз инкапсуляции. 85 00:03:48,960 --> 00:03:52,630 >> Как пользователь или клиент библиотеки, вы не должны 86 00:03:52,630 --> 00:03:54,230 знать о внутреннем библиотеки в 87 00:03:54,230 --> 00:03:55,380 Для того чтобы использовать его. 88 00:03:55,380 --> 00:03:57,800 Помните, видя Printf немного назад? 89 00:03:57,800 --> 00:04:00,275 Если бы вы когда-нибудь видели реальный код раньше? 90 00:04:00,275 --> 00:04:02,535 Ну, я предполагаю, что у вас нет, хотя вы, возможно, 91 00:04:02,535 --> 00:04:05,090 использовали Printf тонн раза. 92 00:04:05,090 --> 00:04:08,110 Все, что вы должны были знать была настоящая декларация функции 93 00:04:08,110 --> 00:04:10,940 В заголовке файла stdio.h. 94 00:04:10,940 --> 00:04:14,010 Во всяком случае, в пользу хорошего сокрытия информации является то, что 95 00:04:14,010 --> 00:04:16,820 и программ, которые вы пишите изолированы от любых изменений в 96 00:04:16,820 --> 00:04:20,209 Код реализации библиотечных функций. 97 00:04:20,209 --> 00:04:22,880 Если реализация Printf изменения, вам не придется 98 00:04:22,880 --> 00:04:26,310 пойти и изменить все ваши программы, которые используют Printf. 99 00:04:26,310 --> 00:04:28,450 >> Так где же реализация идти? 100 00:04:28,450 --> 00:04:31,020 Ну, опять же, по соглашению, реализация идет в 101 00:04:31,020 --> 00:04:34,310 Файл с расширением. файл с. 102 00:04:34,310 --> 00:04:36,820 Как правило, файлы заголовков и файлы реализации идут рука 103 00:04:36,820 --> 00:04:39,380 в руке, так что если вы объявили несколько новых строк 104 00:04:39,380 --> 00:04:42,950 функции в mystring.h, то вы будете определять все 105 00:04:42,950 --> 00:04:46,960 эти функции в MyString. с. 106 00:04:46,960 --> 00:04:49,230 Таким образом, то заголовок и реализация файлы, то 107 00:04:49,230 --> 00:04:52,230 составлен, создание объектных файлов, которые затем связываются 108 00:04:52,230 --> 00:04:55,360 вместе для создания двоичного файла библиотеки. 109 00:04:55,360 --> 00:04:58,520 В библиотеке писателя будет грузить двоичный файл вместе 110 00:04:58,520 --> 00:05:00,720 с заголовка файла для программистов, которые хотят использовать 111 00:05:00,720 --> 00:05:02,280 библиотеки. 112 00:05:02,280 --> 00:05:04,640 На данный момент,. Файлы с реализации, не являются 113 00:05:04,640 --> 00:05:07,840 необходимо, кроме перекомпилировать библиотеку с нуля, поэтому 114 00:05:07,840 --> 00:05:10,270 они часто остаются. 115 00:05:10,270 --> 00:05:13,670 >> Для использования библиотеки C, что вам нужно сделать две вещи. 116 00:05:13,670 --> 00:05:16,890 Во-первых, вы должны # включить заголовок библиотеки файлов и 117 00:05:16,890 --> 00:05:18,700 исходный код файла, в котором вы хотите использовать 118 00:05:18,700 --> 00:05:20,530 библиотеки кода. 119 00:05:20,530 --> 00:05:23,200 Об этом сообщает компилятору всех деклараций 120 00:05:23,200 --> 00:05:26,890 функции, переменные, структуры, и так далее, присутствующих в 121 00:05:26,890 --> 00:05:30,510 заголовочные файлы так, чтобы компилятор можно, убедиться, что 122 00:05:30,510 --> 00:05:33,280 Вы используете ресурсы библиотеки в надлежащем порядке, 123 00:05:33,280 --> 00:05:37,120 и, во-вторых, генерировать соответствующий код сборки. 124 00:05:37,120 --> 00:05:38,910 В зависимости от того, где заголовок библиотеки файлов 125 00:05:38,910 --> 00:05:42,720 расположены, # включить синтаксис различается. 126 00:05:42,720 --> 00:05:44,880 Если заголовок файла находятся в системе 127 00:05:44,880 --> 00:05:46,690 по умолчанию включает каталог - 128 00:05:46,690 --> 00:05:48,780 Как правило, usr/include-- 129 00:05:48,780 --> 00:05:52,200 то угол синтаксиса скобки используются, как в # включить 130 00:05:52,200 --> 00:05:53,450 . 131 00:05:57,440 --> 00:05:59,540 Тем не менее, если заголовок файла находятся в том же 132 00:05:59,540 --> 00:06:02,960 Каталог как свой собственный код, двойной синтаксиса цитата 133 00:06:02,960 --> 00:06:04,870 использовать, как в # включить "mylib.h". 134 00:06:08,630 --> 00:06:11,220 >> Второе, что вам нужно сделать, это перейти по ссылке в двоичном 135 00:06:11,220 --> 00:06:13,760 Файл библиотеки при компиляции кода. 136 00:06:13,760 --> 00:06:15,810 Это супер важный шаг. 137 00:06:15,810 --> 00:06:17,540 Помните, наших предыдущих дискуссий о том, заголовок 138 00:06:17,540 --> 00:06:20,200 файлы не содержат кода реализации? 139 00:06:20,200 --> 00:06:22,200 Если вы забыли этот шаг, вы получите ошибки, о 140 00:06:22,200 --> 00:06:24,990 неопределенные символы, указанные в коде. 141 00:06:24,990 --> 00:06:29,580 Чтобы решить эту проблему, используйте флаг-L последовала незамедлительно 142 00:06:29,580 --> 00:06:32,320 без пробела по имени библиотеки. 143 00:06:32,320 --> 00:06:35,410 На многих системах, в том числе прибор, C Standard 144 00:06:35,410 --> 00:06:38,350 Библиотеки будут автоматически связаны для вас. 145 00:06:38,350 --> 00:06:41,700 Тем не менее, математические библиотеки иногда в комплекте отдельно 146 00:06:41,700 --> 00:06:44,600 и, возможно, должны быть увязаны с-лм. 147 00:06:44,600 --> 00:06:47,760 С прибором, мы позаботимся об этом за вас, и мы также 148 00:06:47,760 --> 00:06:52,170 ссылка CS50-библиотеку с lcs50. 149 00:06:52,170 --> 00:06:54,540 Вы можете посмотреть все это на прибор, когда вы запускаете сделать. 150 00:06:57,620 --> 00:06:59,130 >> Теперь вы должны иметь знания, необходимые для использования 151 00:06:59,130 --> 00:07:02,150 библиотеки в С. Удачи изучения. 152 00:07:02,150 --> 00:07:05,880 Меня зовут Нейт Хардисон, и это CS50.