1 00:00:06,692 --> 00:00:09,470 [Powered by Google Translate] Nate HARDISON: programavimo, biblioteka yra kolekcija 2 00:00:09,470 --> 00:00:11,380 susiję prewritten kodas. 3 00:00:11,380 --> 00:00:14,350 Bibliotekos, kaip mes, programuotojai, dalintis bendrais ir 4 00:00:14,350 --> 00:00:16,930 naudinga kodas vieni su kitais, su įvairių programų 5 00:00:16,930 --> 00:00:19,470 rašyti ir net skirtingi procesai veikia 6 00:00:19,470 --> 00:00:21,380 tuo pačiu metu mūsų kompiuterius. 7 00:00:21,380 --> 00:00:23,000 >> Pažinkime šiek tiek. 8 00:00:23,000 --> 00:00:25,070 Vienas iš labiausiai paplitusių funkcijas, kad jūs tikriausiai 9 00:00:25,070 --> 00:00:27,500 printf funkcija naudoja. 10 00:00:27,500 --> 00:00:29,820 Dabar printf nėra kažkokia magija funkcija, kad buvo 11 00:00:29,820 --> 00:00:31,670 kietai "įsiūtos į kompiuterį - 12 00:00:31,670 --> 00:00:34,320 o, tai C standartinės bibliotekos dalis, kurios yra 13 00:00:34,320 --> 00:00:36,080 funkcijų rinkinys, kuris ateina su 14 00:00:36,080 --> 00:00:38,050 C programavimo kalba. 15 00:00:38,050 --> 00:00:40,920 Nuo printf nėra pastatytas į kompiuterį, tai reiškia, kad 16 00:00:40,920 --> 00:00:43,520 ten buvo kai programuotojas, kuris iš tikrųjų nuėjo ir parašė 17 00:00:43,520 --> 00:00:46,310 printf funkcija ir siejama su likusios standarto dalies sritis 18 00:00:46,310 --> 00:00:48,880 bibliotekos, kad ateities programuotojai neturi 19 00:00:48,880 --> 00:00:50,310 dubliuoti pastangas. 20 00:00:50,310 --> 00:00:52,620 Ir mes tikrai dėkingas, kad tai toks atvejis, nes patikrinti 21 00:00:52,620 --> 00:00:54,710 iš kiek kodas ji iš tikrųjų mano, kad įgyvendinti printf. 22 00:00:59,590 --> 00:01:02,860 >> C standartinės bibliotekos, iš kurių printf yra dalis, yra 23 00:01:02,860 --> 00:01:04,480 vienas iš svarbiausių įrankių, jums 24 00:01:04,480 --> 00:01:06,770 turi kovojant su CS50. 25 00:01:06,770 --> 00:01:08,780 Be to, į įvesties-išvesties bibliotekoje, kur 26 00:01:08,780 --> 00:01:11,370 printf gyvena, yra krūva kitų bibliotekų 27 00:01:11,370 --> 00:01:14,230 jūs tikriausiai naudoti per su CS50 kursą. 28 00:01:14,230 --> 00:01:16,730 Pavyzdžiui, eilutė biblioteka yra funkcijos 29 00:01:16,730 --> 00:01:20,960 palyginti C eilutes, gauti jų ilgį, ir Jungiant juos. 30 00:01:20,960 --> 00:01:22,410 Ir matematikos biblioteka suteikia jums naudinga 31 00:01:22,410 --> 00:01:25,062 konstantos, kaip pi ir e. 32 00:01:25,062 --> 00:01:27,650 Dabar, palyginti su standartinėmis kitų programavimo bibliotekų 33 00:01:27,650 --> 00:01:31,190 kalbos, C standartinės bibliotekos yra tikrai mažas, 34 00:01:31,190 --> 00:01:34,060 bet jie vis dar turi didelį kiekį daiktų. 35 00:01:34,060 --> 00:01:36,370 Ir tai dar ne pasakyti, kad standartinės bibliotekos 36 00:01:36,370 --> 00:01:39,020 tik C bibliotekos, yra daug daugiau ten 37 00:01:39,020 --> 00:01:42,460 pasaulyje, kuriuos galima naudoti, įskaitant CS50 bibliotekos, 38 00:01:42,460 --> 00:01:45,150 kartografija bibliotekos su šifravimui ir iššifravimui 39 00:01:45,150 --> 00:01:48,000 funkcijos, bibliotekos funkcijų, norint užkoduoti ir 40 00:01:48,000 --> 00:01:50,970 atkurti vaizdo, ir taip toliau. 41 00:01:50,970 --> 00:01:53,190 >> Tai duoda mums svarbu panaikinti. 42 00:01:53,190 --> 00:01:55,500 Vienas iš esminių įgūdžių inžinerijos žinant 43 00:01:55,500 --> 00:01:58,090 įrankių, savo priemonių rinkinį, kad būtų galima naudoti 44 00:01:58,090 --> 00:01:59,850 ir neišradinėti dviračio, nebent 45 00:01:59,850 --> 00:02:01,510 jūs turite padaryti. 46 00:02:01,510 --> 00:02:04,120 Kaip programuotojai, bibliotekos yra vienas iš svarbiausių 47 00:02:04,120 --> 00:02:05,520 įrankiai, mes turime. 48 00:02:05,520 --> 00:02:08,520 Kai jums rasti sau susiduria užduotį, kuri, atrodo nuobodus arba 49 00:02:08,520 --> 00:02:11,940 paplitę, kaip rasti ilgis C kalboje, jūs 50 00:02:11,940 --> 00:02:14,020 turėtumėte užduoti sau, jei tai gali būti atvejis, kad 51 00:02:14,020 --> 00:02:16,520 kažkas jau padarė tą patį anksčiau. 52 00:02:16,520 --> 00:02:17,760 Yra tikimybė, kad jums gali rasti kai kurie 53 00:02:17,760 --> 00:02:20,110 padėti per bibliotekoje. 54 00:02:20,110 --> 00:02:23,260 >> Taigi, techniniu požiūriu, biblioteka yra dvejetainis failas, kuris 55 00:02:23,260 --> 00:02:26,210 buvo pagamintas sujungiant kolekcija 56 00:02:26,210 --> 00:02:28,880 objekto failus, naudodami įrankį, vadinamą, jūs 57 00:02:28,880 --> 00:02:31,010 atspėjote, Linker. 58 00:02:31,010 --> 00:02:33,830 Objekto failus o bylos, kad jūs gaunate, kai 59 00:02:33,830 --> 00:02:35,860 sudaryti C šaltinio kodą. 60 00:02:35,860 --> 00:02:38,420 Kai programuotojai rašyti bibliotekas, jie paprastai 61 00:02:38,420 --> 00:02:41,560 atskirti savo C kodą į dviejų tipų failus: 62 00:02:41,560 --> 00:02:44,880 header files ir įgyvendinimo failus. 63 00:02:44,880 --> 00:02:49,820 Failo antraštės pagal susitarimą suteikiama h failo plėtinį, 64 00:02:49,820 --> 00:02:51,940 ir jame kodą, kuris deklaruoja biblioteka 65 00:02:51,940 --> 00:02:55,120 ištekliai, kurie yra prieinami jums naudoti. 66 00:02:55,120 --> 00:02:58,830 Šie ištekliai apima funkcijas, kintamieji, structs, 67 00:02:58,830 --> 00:03:01,980 tipo apibrėžimai, ir tt, ir kartu, jie yra 68 00:03:01,980 --> 00:03:04,620 paprastai vadinama kaip sąsaja. 69 00:03:04,620 --> 00:03:07,280 Iš tiesų, jei jūs kada nors įdomu, kas į biblioteką, 70 00:03:07,280 --> 00:03:09,580 header files yra vieta ieškoti. 71 00:03:09,580 --> 00:03:14,030 >> Pavyzdžiui, jūs galite atsigriebti usr / include / stdio.h ir patikrinkite 72 00:03:14,030 --> 00:03:16,210 atlikti viską, ką kada nors norėjo žinoti apie 73 00:03:16,210 --> 00:03:18,570 standartas io biblioteka. 74 00:03:18,570 --> 00:03:20,610 Yra daug dalykų čia, ir tai gali užtrukti šiek tiek 75 00:03:20,610 --> 00:03:22,420 laikas bristi per. 76 00:03:22,420 --> 00:03:25,840 Tačiau, kartu su "Google" ir manpages, tai yra 77 00:03:25,840 --> 00:03:28,060 vieta eiti, jei jums įdomu, kaip standartinis I / O 78 00:03:28,060 --> 00:03:30,460 bibliotekos funkcijos veikia. 79 00:03:30,460 --> 00:03:33,910 Taigi vienas pagrindinis dalykas, reikia pažymėti, nors tai, kad header files 80 00:03:33,910 --> 00:03:36,740 paprastai neapima funkcijų apibrėžimus - 81 00:03:36,740 --> 00:03:40,020 tai yra faktinis funkcija diegimas. 82 00:03:40,020 --> 00:03:42,470 Tai svarbaus kompiuterių mokslo iliustracija 83 00:03:42,470 --> 00:03:45,700 principas vadinamas informacijos slėpimą, taip pat vadinama ne 84 00:03:45,700 --> 00:03:48,960 kartus hermetizuoti. 85 00:03:48,960 --> 00:03:52,630 >> Vartotojo arba kliento bibliotekoje, jums nereikia 86 00:03:52,630 --> 00:03:54,230 žinoti apie bibliotekos vidinės 87 00:03:54,230 --> 00:03:55,380 jį naudoti. 88 00:03:55,380 --> 00:03:57,800 Atsimenu, matau printf tik šiek tiek prieš? 89 00:03:57,800 --> 00:04:00,275 Jeigu jūs kada nors matė faktinis kodas anksčiau? 90 00:04:00,275 --> 00:04:02,535 Na, aš manau, kad jūs dar ne, nors galbūt 91 00:04:02,535 --> 00:04:05,090 naudojo printf tonų kartų. 92 00:04:05,090 --> 00:04:08,110 Viskas, ką turėjo žinoti funkcija deklaracija metu 93 00:04:08,110 --> 00:04:10,940 į stdio.h antraštės faile. 94 00:04:10,940 --> 00:04:14,010 Bet kokiu atveju, geros informacijos slapstytis nauda yra, kad jūs 95 00:04:14,010 --> 00:04:16,820 ir programas, rašote yra izoliuoti nuo bet kokių pokyčių 96 00:04:16,820 --> 00:04:20,209 kodas bibliotekos funkcijų įgyvendinimą. 97 00:04:20,209 --> 00:04:22,880 Jei printf pokyčių įgyvendinimas, jūs neturite 98 00:04:22,880 --> 00:04:26,310 eiti ir pakeisti visas savo programas, kurios naudoja printf. 99 00:04:26,310 --> 00:04:28,450 >> Taigi, kur gi įgyvendinimas eiti? 100 00:04:28,450 --> 00:04:31,020 Na, dar kartą, pagal susitarimą, kurio įgyvendinimas vyksta 101 00:04:31,020 --> 00:04:34,310 failas su C failo plėtinys. 102 00:04:34,310 --> 00:04:36,820 Paprastai header files ir įgyvendinimo failus eiti koja 103 00:04:36,820 --> 00:04:39,380 vertus, todėl, jei jūs paskelbė naujos eilutės krūva 104 00:04:39,380 --> 00:04:42,950 funkcijos mystring.h, tada jums apibrėžti visas 105 00:04:42,950 --> 00:04:46,960 tie mystring funkcijos. 106 00:04:46,960 --> 00:04:49,230 Taip, tada antraštės ir įgyvendinimo failai yra 107 00:04:49,230 --> 00:04:52,230 parengta, sukurti objekto failus, tada susiję 108 00:04:52,230 --> 00:04:55,360 kartu, siekiant parengti dvejetainis bibliotekos failą. 109 00:04:55,360 --> 00:04:58,520 Biblioteka rašytojas laivų dvejetainis failas kartu 110 00:04:58,520 --> 00:05:00,720 su header files programuotojų, kurie nori naudoti 111 00:05:00,720 --> 00:05:02,280 biblioteka. 112 00:05:02,280 --> 00:05:04,640 Šiuo metu, c įgyvendinimo failų nėra 113 00:05:04,640 --> 00:05:07,840 reikia, išskyrus tuos atvejus, perkompiliuoti biblioteką nuo nulio, todėl 114 00:05:07,840 --> 00:05:10,270 jie dažnai paliktas. 115 00:05:10,270 --> 00:05:13,670 >> Naudotis C biblioteką, turite padaryti du dalykus. 116 00:05:13,670 --> 00:05:16,890 Pirma, jums reikia # include bibliotekos antraščių failus ir 117 00:05:16,890 --> 00:05:18,700 šaltinio kodas byla, kurioje norite naudoti 118 00:05:18,700 --> 00:05:20,530 bibliotekos kodas. 119 00:05:20,530 --> 00:05:23,200 Tai informuoja visų deklaracijų kompiliatorių 120 00:05:23,200 --> 00:05:26,890 funkcijas, kintamuosius, structs ir tt, esančių 121 00:05:26,890 --> 00:05:30,510 header files kad kompiliatorius gali, garantuoti, kad 122 00:05:30,510 --> 00:05:33,280 jūs naudojate bibliotekos fondais tinkamu būdu, 123 00:05:33,280 --> 00:05:37,120 ir du, generuoti atitinkamą surinkimo kodą. 124 00:05:37,120 --> 00:05:38,910 Priklausomai nuo to, kur bibliotekos header files 125 00:05:38,910 --> 00:05:42,720 įsikūręs # include sintaksė skiriasi. 126 00:05:42,720 --> 00:05:44,880 Jei antraštės failai yra sistemos 127 00:05:44,880 --> 00:05:46,690 numatytasis katalogas - 128 00:05:46,690 --> 00:05:48,780 paprastai, usr/include-- 129 00:05:48,780 --> 00:05:52,200 tada laužtiniuose skliaustuose sintaksė yra naudojamas, kaip # yra 130 00:05:52,200 --> 00:05:53,450 . 131 00:05:57,440 --> 00:05:59,540 Tačiau, jei antraštės failai yra toje pačioje 132 00:05:59,540 --> 00:06:02,960 katalogas kaip savo kodą, dvigubas kabutes sintaksė yra 133 00:06:02,960 --> 00:06:04,870 , kaip # include "mylib.h". 134 00:06:08,630 --> 00:06:11,220 >> Antras dalykas, ką jums reikia padaryti yra susieti dvejetainiai 135 00:06:11,220 --> 00:06:13,760 bibliotekos failą, kai renka savo kodą. 136 00:06:13,760 --> 00:06:15,810 Tai yra super svarbus žingsnis. 137 00:06:15,810 --> 00:06:17,540 Prisiminti mūsų ankstesnę diskusiją apie tai, kaip antraštė 138 00:06:17,540 --> 00:06:20,200 bylos nėra įgyvendinimo kodeksą? 139 00:06:20,200 --> 00:06:22,200 , Jei pamirštumėte šį žingsnį, jūs gausite informaciją apie klaidas 140 00:06:22,200 --> 00:06:24,990 undefined simboliai, nurodyti Jūsų kodas. 141 00:06:24,990 --> 00:06:29,580 Norėdami išspręsti šią problemą, naudokite-l vėliava, po to iš karto 142 00:06:29,580 --> 00:06:32,320 be, bibliotekos pavadinimu erdvėje. 143 00:06:32,320 --> 00:06:35,410 Nuo daugelio sistemų, įskaitant prietaiso, C standarto 144 00:06:35,410 --> 00:06:38,350 Bibliotekos automatiškai nuoroda į jį. 145 00:06:38,350 --> 00:06:41,700 Tačiau matematikos biblioteka kartais siejama atskirai 146 00:06:41,700 --> 00:06:44,600 ir gali tekti būti susieta su-LM. 147 00:06:44,600 --> 00:06:47,760 Ant prietaiso, tai pasirūpinti už jus, ir mes taip pat 148 00:06:47,760 --> 00:06:52,170 susieti CS50 biblioteką su lcs50. 149 00:06:52,170 --> 00:06:54,540 Jūs galite pamatyti visa tai ant prietaiso, kai paleidžiate. 150 00:06:57,620 --> 00:06:59,130 >> Dabar jūs turėtumėte turėti žinių jums reikia naudoti 151 00:06:59,130 --> 00:07:02,150 bibliotekos C Baw, žiūrėdami. 152 00:07:02,150 --> 00:07:05,880 Mano vardas yra Nate Hardison, ir tai yra CS50.