1 00:00:06,692 --> 00:00:09,470 [Powered by Google Translate] Нейт HARDISON: В програмирането, библиотека е колекция от 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 Сега, ФОРМАТ не е някаква магическа функция, която е била 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 От ФОРМАТ не е изградена в компютъра, това означава, че 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 , колко код всъщност необходимо, за да изпълни ФОРМАТ. 22 00:00:59,590 --> 00:01:02,860 >> С стандартните библиотеки, от които ФОРМАТ е част, са 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 ФОРМАТ живот, има един куп други библиотеки, които 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 сравни С стринг, тяхната дължина, и ги свързвам. 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 често срещано, като намирането на дължината на низа, 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 Тези ресурси включват функции, променливи, structs, 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 >> Например, можете да дръпнете ЮЕсАр / включват / 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 и manpages, това е 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 Не забравяйте, ФОРМАТ виждат само за малко преди? 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 да използва ФОРМАТ тона пъти. 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 Ако изпълнението на ФОРМАТ промени, не е нужно 98 00:04:22,880 --> 00:04:26,310 да отида и да се променят всички програми, които използват ФОРМАТ. 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 функции, променливи, structs, и т.н., присъстващи в 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 За да се разреши този проблем, използвайте-л знаме, последван незабавно 142 00:06:29,580 --> 00:06:32,320 без интервал от името на библиотеката. 143 00:06:32,320 --> 00:06:35,410 На много системи, включително и на уреда, C Стандарт 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 и може да се наложи да бъдат обвързани с-LM. 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 библиотеки в C. Забавлявайте проучване. 152 00:07:02,150 --> 00:07:05,880 Моето име е Нейт Hardison, и това е CS50.