1 00:00:06,692 --> 00:00:09,470 [Powered by Google Translate] Nate HARDISON: V programiranju, knjižnica je zbirka 2 00:00:09,470 --> 00:00:11,380 povezane prewritten kodo. 3 00:00:11,380 --> 00:00:14,350 Knjižnice so, kako smo, kot programerji, delež skupnega in 4 00:00:14,350 --> 00:00:16,930 pomoč koda s seboj, z različnimi programi smo 5 00:00:16,930 --> 00:00:19,470 pisati, in tudi z različnimi procesi teče 6 00:00:19,470 --> 00:00:21,380 Hkrati na naših računalnikih. 7 00:00:21,380 --> 00:00:23,000 >> Oglejmo si malo. 8 00:00:23,000 --> 00:00:25,070 Ena izmed bolj običajnih funkcij, ki ste verjetno 9 00:00:25,070 --> 00:00:27,500 been using je printf funkcija. 10 00:00:27,500 --> 00:00:29,820 Zdaj printf ni nekaj čarobno funkcija, ki je bilo 11 00:00:29,820 --> 00:00:31,670 težko kodirane v računalnik - 12 00:00:31,670 --> 00:00:34,320 ampak to je del standardne knjižnice na C, ki so 13 00:00:34,320 --> 00:00:36,080 Zbirka funkcij, ki prihaja z 14 00:00:36,080 --> 00:00:38,050 C programski jezik. 15 00:00:38,050 --> 00:00:40,920 Ker je printf ni vgrajena v računalnik, kar pomeni, da 16 00:00:40,920 --> 00:00:43,520 je bilo nekaj programer, ki je dejansko šel v in napisal 17 00:00:43,520 --> 00:00:46,310 printf funkcijo in jo v paketu z ostalimi standard 18 00:00:46,310 --> 00:00:48,880 knjižnice, tako da prihodnje programerji ne bi bilo treba 19 00:00:48,880 --> 00:00:50,310 podvojiti prizadevanja. 20 00:00:50,310 --> 00:00:52,620 In prepričani smo, da hvaležen, da je temu tako, ker preverite 21 00:00:52,620 --> 00:00:54,710 , koliko je v resnici šifra meni, da printf izvajati. 22 00:00:59,590 --> 00:01:02,860 >> C Standard knjižnice, ki je printf del, so 23 00:01:02,860 --> 00:01:04,480 eden od najpomembnejših orodij, ki jih 24 00:01:04,480 --> 00:01:06,770 imajo pri reševanju CS50. 25 00:01:06,770 --> 00:01:08,780 Poleg vhodno-izhodnega knjižnici, kjer 26 00:01:08,780 --> 00:01:11,370 printf življenja, obstaja kup drugih knjižnic, ki 27 00:01:11,370 --> 00:01:14,230 boste verjetno uporabljali tekom CS50. 28 00:01:14,230 --> 00:01:16,730 Na primer, niz knjižnica funkcij 29 00:01:16,730 --> 00:01:20,960 primerjati nize C, dobili svoje dolžine in jih združite. 30 00:01:20,960 --> 00:01:22,410 In math knjižnica vam v pomoč 31 00:01:22,410 --> 00:01:25,062 konstante, kot pi in e. 32 00:01:25,062 --> 00:01:27,650 Zdaj, v primerjavi s standardnimi knjižnicami drugih programskih 33 00:01:27,650 --> 00:01:31,190 jeziku, C Število Knjižnice so zelo majhne, 34 00:01:31,190 --> 00:01:34,060 ampak še vedno imajo veliko količino stvari. 35 00:01:34,060 --> 00:01:36,370 In to ne pomeni, da so standardne knjižnice so 36 00:01:36,370 --> 00:01:39,020 Samo C knjižnice, obstaja veliko več tam v 37 00:01:39,020 --> 00:01:42,460 Svet ga boste uporabljali, vključno z CS50 knjižnici 38 00:01:42,460 --> 00:01:45,150 kartografija knjižnice z šifriranje in dešifriranje 39 00:01:45,150 --> 00:01:48,000 funkcije, knjižnice s funkcijo za kodiranje in 40 00:01:48,000 --> 00:01:50,970 predvaja video, in tako naprej. 41 00:01:50,970 --> 00:01:53,190 >> To nas pripelje do pomembne razveljavi. 42 00:01:53,190 --> 00:01:55,500 Ena od bistvenih sposobnosti inženirstva je poznavanja 43 00:01:55,500 --> 00:01:58,090 orodij na voljo v vašem orodjarni, tako da lahko uporabljate 44 00:01:58,090 --> 00:01:59,850 njih in se izognili izumljanju kolesa, razen 45 00:01:59,850 --> 00:02:01,510 moraš to storiti. 46 00:02:01,510 --> 00:02:04,120 Kot programerji, knjižnice so ena izmed najbolj pomembnih 47 00:02:04,120 --> 00:02:05,520 orodij, ki jih imamo. 48 00:02:05,520 --> 00:02:08,520 Ko se znajdete sooča z nalogo, da se zdi dolgočasno, ali 49 00:02:08,520 --> 00:02:11,940 samoumevna, kot je iskanje dolžino niza C, lahko 50 00:02:11,940 --> 00:02:14,020 morate vprašati, če bi se zgodilo, da 51 00:02:14,020 --> 00:02:16,520 kdo je že storil enako prej. 52 00:02:16,520 --> 00:02:17,760 Možnosti so, da bi lahko našli nekaj 53 00:02:17,760 --> 00:02:20,110 pomoč v knjižnici. 54 00:02:20,110 --> 00:02:23,260 >> Torej, v tehničnem smislu, knjižnica je binarna datoteka, ki 55 00:02:23,260 --> 00:02:26,210 je bil pripravljen s povezovanjem zbirko 56 00:02:26,210 --> 00:02:28,880 predmet datotek z orodjem pozval, da 57 00:02:28,880 --> 00:02:31,010 mislil je, je povezovalnik. 58 00:02:31,010 --> 00:02:33,830 Objekt datoteke so jih. O datoteke, ki jih dobiš, ko 59 00:02:33,830 --> 00:02:35,860 zbrati C izvorne kode. 60 00:02:35,860 --> 00:02:38,420 Ko programerji pišejo knjižnice, ki jih običajno 61 00:02:38,420 --> 00:02:41,560 ločujejo C kodo na dve vrsti datotek: 62 00:02:41,560 --> 00:02:44,880 header datoteke in izvajanje datoteke. 63 00:02:44,880 --> 00:02:49,820 Glava datoteke po dogovoru je dana h datoteko. Končnico 64 00:02:49,820 --> 00:02:51,940 in vsebuje kodo, ki izjavlja, knjižnica je 65 00:02:51,940 --> 00:02:55,120 Sredstva, ki so na voljo za uporabo. 66 00:02:55,120 --> 00:02:58,830 Ti viri vključujejo funkcije, spremenljivke, konstrukti, 67 00:02:58,830 --> 00:03:01,980 Tip opredelitve, in tako naprej, in skupaj sta 68 00:03:01,980 --> 00:03:04,620 ponavadi naveden kot vmesnik. 69 00:03:04,620 --> 00:03:07,280 V bistvu, če ste kdaj sprašujete, kaj je v knjižnici, 70 00:03:07,280 --> 00:03:09,580 V glavi datoteke so kraj za iskanje. 71 00:03:09,580 --> 00:03:14,030 >> Na primer, lahko potegnite navzgor usr / include / stdio.h in preverite 72 00:03:14,030 --> 00:03:16,210 od vsega, kar ste želeli vedeti o 73 00:03:16,210 --> 00:03:18,570 standard io knjižnica. 74 00:03:18,570 --> 00:03:20,610 Obstaja veliko stvari tukaj, in da lahko traja nekaj 75 00:03:20,610 --> 00:03:22,420 Čas je, da prebroditi. 76 00:03:22,420 --> 00:03:25,840 Vendar pa je skupaj z Googlom in Priročniške strani, to je 77 00:03:25,840 --> 00:03:28,060 kraj za iti, če ste se spraševala, kako standardne I / O 78 00:03:28,060 --> 00:03:30,460 Knjižnica funkcije delujejo. 79 00:03:30,460 --> 00:03:33,910 Torej ena ključna stvar, ki sem seznanjen, čeprav je, da header datoteke 80 00:03:33,910 --> 00:03:36,740 običajno ne vključuje definicije funkcij - 81 00:03:36,740 --> 00:03:40,020 to je dejansko funkcijo izvedbe. 82 00:03:40,020 --> 00:03:42,470 To je ilustracija pomemben računalništvu 83 00:03:42,470 --> 00:03:45,700 Načelo imenuje skrivanje informacij, imenovano tudi na 84 00:03:45,700 --> 00:03:48,960 krat zaprtjem. 85 00:03:48,960 --> 00:03:52,630 >> Kot uporabnik ali stranko v knjižnici, vam ni treba 86 00:03:52,630 --> 00:03:54,230 ve Notranjost knjižnice v 87 00:03:54,230 --> 00:03:55,380 Da, da jo uporabljajo. 88 00:03:55,380 --> 00:03:57,800 Zapomni si videl printf le malo nazaj? 89 00:03:57,800 --> 00:04:00,275 Če bi si kdaj videl dejansko kodo, preden? 90 00:04:00,275 --> 00:04:02,535 No, predvidevam, da še niste storili, čeprav bi lahko ti 91 00:04:02,535 --> 00:04:05,090 so uporabljali printf ton časa. 92 00:04:05,090 --> 00:04:08,110 Vse, kar je moral vedeti, je ta funkcija izjava 93 00:04:08,110 --> 00:04:10,940 V datoteki stdio.h glavo. 94 00:04:10,940 --> 00:04:14,010 Kakorkoli že, v korist dobrega skrivanja informacij, ki jih je 95 00:04:14,010 --> 00:04:16,820 in programi, ki jih pišejo izolirana od vseh spremembah v 96 00:04:16,820 --> 00:04:20,209 oznaka za izvajanje knjižnične funkcije. 97 00:04:20,209 --> 00:04:22,880 Če izvedba printf sprememb, nimate 98 00:04:22,880 --> 00:04:26,310 iti in spremeniti vse programe, ki uporabljajo printf. 99 00:04:26,310 --> 00:04:28,450 >> Torej, če ne izvajanje iti? 100 00:04:28,450 --> 00:04:31,020 Torej, še enkrat, po dogovoru pa je izvedba gre v 101 00:04:31,020 --> 00:04:34,310 datoteka s pripono. c. 102 00:04:34,310 --> 00:04:36,820 Ponavadi header datoteke in izvajanje datoteke roko 103 00:04:36,820 --> 00:04:39,380 v roki, tako da, če ste prijavljeni kup novih niz 104 00:04:39,380 --> 00:04:42,950 Funkcije mystring.h, potem boste opredeli vse 105 00:04:42,950 --> 00:04:46,960 te funkcije v mystring c.. 106 00:04:46,960 --> 00:04:49,230 Torej datoteke glave in izvedba sta nato 107 00:04:49,230 --> 00:04:52,230 zbrati, ustvarjanje datotek predmeta, ki so nato povezane 108 00:04:52,230 --> 00:04:55,360 skupaj za izdelavo datoteke binarni knjižnico. 109 00:04:55,360 --> 00:04:58,520 Knjižnica pisatelj bo nato poslal binarne datoteke skupaj 110 00:04:58,520 --> 00:05:00,720 z glavi datoteke za programerje, ki želijo uporabljati 111 00:05:00,720 --> 00:05:02,280 knjižnico. 112 00:05:02,280 --> 00:05:04,640 Na tej točki, c izvajanja. Datoteke niso 113 00:05:04,640 --> 00:05:07,840 potrebna, razen prevesti v knjižnico iz nič, tako 114 00:05:07,840 --> 00:05:10,270 oni so pogosto izpuščeni. 115 00:05:10,270 --> 00:05:13,670 >> Za uporabo knjižnice C, kar morate narediti dve stvari. 116 00:05:13,670 --> 00:05:16,890 Prvič, morate # vključujejo v knjižnici v glavo datoteke in 117 00:05:16,890 --> 00:05:18,700 izvorno kodo datoteke, če želite uporabiti 118 00:05:18,700 --> 00:05:20,530 knjižnice, koda. 119 00:05:20,530 --> 00:05:23,200 Ta prevajalnik obvesti o vseh izjavah o 120 00:05:23,200 --> 00:05:26,890 funkcije, spremenljivke, konstrukti, in tako dalje, navzoči pri 121 00:05:26,890 --> 00:05:30,510 header datoteke, tako da lahko prevajalnik 1, zagotavlja, da so 122 00:05:30,510 --> 00:05:33,280 boste uporabljali v knjižnici vire na pravilen način, 123 00:05:33,280 --> 00:05:37,120 in drugič, ustvariti ustrezno oznako sklopa. 124 00:05:37,120 --> 00:05:38,910 Glede na to, kje v knjižnici v glavo datoteke 125 00:05:38,910 --> 00:05:42,720 leži v # include sintaksa razlikuje. 126 00:05:42,720 --> 00:05:44,880 Če se v glavi datoteke se nahajajo v sistemskem 127 00:05:44,880 --> 00:05:46,690 privzeto vključujejo imenik - 128 00:05:46,690 --> 00:05:48,780 običajno, usr/include-- 129 00:05:48,780 --> 00:05:52,200 potem pa se kot nosilci sintaksa se uporablja, kot je v # include 130 00:05:52,200 --> 00:05:53,450 . 131 00:05:57,440 --> 00:05:59,540 Vendar, če se header datoteke, ki se nahajajo v isti 132 00:05:59,540 --> 00:06:02,960 Imenik kot svojo kodo, dvojni narekovaj sintaksa je 133 00:06:02,960 --> 00:06:04,870 uporabljajo kot # include "mylib.h". 134 00:06:08,630 --> 00:06:11,220 >> Druga stvar, kar morate storiti, je povezati v binarno 135 00:06:11,220 --> 00:06:13,760 Knjižnica datoteka, ko zbere svojo kodo. 136 00:06:13,760 --> 00:06:15,810 To je super pomemben korak. 137 00:06:15,810 --> 00:06:17,540 Zapomni si našo prejšnjo razpravo o tem, kako glava 138 00:06:17,540 --> 00:06:20,200 datoteke ne vsebujejo izvajanje kode? 139 00:06:20,200 --> 00:06:22,200 Če ste pozabili ta korak, boste dobili napako o 140 00:06:22,200 --> 00:06:24,990 undefined simboli naveden v kodi. 141 00:06:24,990 --> 00:06:29,580 Da bi rešili to, uporabite-l zastave takoj sledi 142 00:06:29,580 --> 00:06:32,320 brez presledka z imenom knjižnice. 143 00:06:32,320 --> 00:06:35,410 Na večini sistemov, vključno z napravo, C standarda 144 00:06:35,410 --> 00:06:38,350 Knjižnice so samodejno povezani za vas. 145 00:06:38,350 --> 00:06:41,700 Vendar pa je matematika knjižnica včasih paketu ločeno 146 00:06:41,700 --> 00:06:44,600 in bi jih bilo treba povezati z-LM. 147 00:06:44,600 --> 00:06:47,760 Na napravi, bomo za to poskrbeli za vas, prav tako 148 00:06:47,760 --> 00:06:52,170 povezati CS50-knjižnico z lcs50. 149 00:06:52,170 --> 00:06:54,540 Ogledate si lahko vse to na napravi, če naletite narediti. 150 00:06:57,620 --> 00:06:59,130 >> Sedaj bi morali imeti znanje, morate uporabiti 151 00:06:59,130 --> 00:07:02,150 knjižnice C. Zabavajte se med raziskovanjem. 152 00:07:02,150 --> 00:07:05,880 Moje ime je Nate Hardison, in to je CS50.