1 00:00:06,692 --> 00:00:09,470 [Powered by Google Translate] НАТЕ Хардисон: У програмирању, библиотека је збирка 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 уместо тога, она је део Ц Стандард библиотека, који су 13 00:00:34,320 --> 00:00:36,080 колекција функција које долази са 14 00:00:36,080 --> 00:00:38,050 Ц програмски језик. 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 имају у решавању ЦС50. 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 вероватно ћете користити током ЦС50. 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 језици, Ц Стандардне библиотеке су заиста мали, 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 само Ц библиотеке; постоје много више тамо у 37 00:01:39,020 --> 00:01:42,460 свет за вас да користите, укључујући ЦС50 библиотеци 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 састави Ц изворног кода. 60 00:02:35,860 --> 00:02:38,420 Када програмери пишу библиотеке, они обично 61 00:02:38,420 --> 00:02:41,560 раздвоје Ц кода у две врсте датотека: 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 >> На пример, можете повући до уср / инцлуде / стдио.х и проверите 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 Међутим, заједно са Гоогле и манпагес, ово је 77 00:03:25,840 --> 00:03:28,060 место да иду ако се питате како је стандардни И / О 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 У стдио.х заглавља датотеке. 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 функције у мистринг.х, онда ћете дефинисати све 105 00:04:42,950 --> 00:04:46,960 те функције у МиСтринг ц.. 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 >> Да бисте користили Ц библиотеку, морате да урадите две ствари. 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 типично, уср/инцлуде-- 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 користи, као иу # инцлуде "милиб.х". 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 На многим системима, укључујући апарата, је Ц Стандард 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 повезати ЦС50 библиотеку са-лцс50. 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 Моје име је Нејт Хардисон, а ово је ЦС50.