1 00:00:06,692 --> 00:00:09,470 [Powered by Google Translate] Nate HARDISON: Í forritun, bókasafn er safn af 2 00:00:09,470 --> 00:00:11,380 Related prewritten kóða. 3 00:00:11,380 --> 00:00:14,350 Bókasöfn eru hvernig við, sem forritari, hluti algeng og 4 00:00:14,350 --> 00:00:16,930 gagnlegt kóðann með hvert annað, með mismunandi forrit við 5 00:00:16,930 --> 00:00:19,470 skrifa, og jafnvel með mismunandi ferli í gangi á 6 00:00:19,470 --> 00:00:21,380 á sama tíma í tölvum okkar. 7 00:00:21,380 --> 00:00:23,000 >> Skoðum aðeins. 8 00:00:23,000 --> 00:00:25,070 Einn af the fleiri sameiginlegur aðgerðir sem þú hefur sennilega 9 00:00:25,070 --> 00:00:27,500 verið að nota er printf virka. 10 00:00:27,500 --> 00:00:29,820 Nú, printf er ekki einhver galdur virka sem hefur verið 11 00:00:29,820 --> 00:00:31,670 harður-dulmáli í tölvunni - 12 00:00:31,670 --> 00:00:34,320 heldur er það hluti af C Standard bókasöfnum, sem eru 13 00:00:34,320 --> 00:00:36,080 safn af aðgerðum sem koma með 14 00:00:36,080 --> 00:00:38,050 C forritunarmál. 15 00:00:38,050 --> 00:00:40,920 Þar printf er ekki byggð inn í tölvuna, sem þýðir að 16 00:00:40,920 --> 00:00:43,520 það var einhver forritari sem reyndar fór í og ​​skrifaði 17 00:00:43,520 --> 00:00:46,310 printf virka og búnt það með the hvíla af the staðall 18 00:00:46,310 --> 00:00:48,880 bókasöfn þannig að komandi forritari þyrfti ekki að 19 00:00:48,880 --> 00:00:50,310 afrit viðleitni. 20 00:00:50,310 --> 00:00:52,620 Og við erum viss þakklát að það er málið, vegna þess að stöðva 21 00:00:52,620 --> 00:00:54,710 út hversu mikið númerið sem það tekur í raun að framkvæma printf. 22 00:00:59,590 --> 00:01:02,860 >> C Standard Libraries, sem printf er hluti, er 23 00:01:02,860 --> 00:01:04,480 einn af mikilvægustu verkfærum sem þú 24 00:01:04,480 --> 00:01:06,770 hafa á að takast á við CS50. 25 00:01:06,770 --> 00:01:08,780 Í viðbót við inntak-framleiðsla bókasafn þar 26 00:01:08,780 --> 00:01:11,370 printf líf, það eru fullt af öðrum söfnum sem 27 00:01:11,370 --> 00:01:14,230 þú munt sennilega nota á meðan á CS50. 28 00:01:14,230 --> 00:01:16,730 Til dæmis, the band Safnið hefur aðgerðir til 29 00:01:16,730 --> 00:01:20,960 bera C strengi, fá lengd þeirra, og concatenate þá. 30 00:01:20,960 --> 00:01:22,410 Og stærðfræði bókasafn gefur þér gagnlegt 31 00:01:22,410 --> 00:01:25,062 fastar, eins og pí og e. 32 00:01:25,062 --> 00:01:27,650 Nú, í samanburði við staðlaða bókasafna annarra forritun 33 00:01:27,650 --> 00:01:31,190 tungumál eru C Standard Bókasöfn mjög lítil, 34 00:01:31,190 --> 00:01:34,060 en þeir hafa samt umtalsvert magn af efni. 35 00:01:34,060 --> 00:01:36,370 Og það er ekki að segja að staðall bókasöfn eru 36 00:01:36,370 --> 00:01:39,020 aðeins C bókasöfn, það eru margir fleiri þarna úti í 37 00:01:39,020 --> 00:01:42,460 heimur fyrir þig að nota, þar á meðal CS50 Library, 38 00:01:42,460 --> 00:01:45,150 Kortagerð bókasöfn með dulkóðun og decryption 39 00:01:45,150 --> 00:01:48,000 aðgerðir, bókasöfn með aðgerðir til að umrita og 40 00:01:48,000 --> 00:01:50,970 spila aftur vídeó, og svo framvegis. 41 00:01:50,970 --> 00:01:53,190 >> Þetta leiðir okkur að mikilvægt hliðar. 42 00:01:53,190 --> 00:01:55,500 Einn af the frumskilyrði færni verkfræði er að þekkja 43 00:01:55,500 --> 00:01:58,090 verkfæri í boði í verkfærakistu þinn svo að þú getur notað 44 00:01:58,090 --> 00:01:59,850 þá og forðast að reinventing hjólinu nema 45 00:01:59,850 --> 00:02:01,510 þú þarft að gera það. 46 00:02:01,510 --> 00:02:04,120 Sem forritari, eru bókasöfn einn af mikilvægustu 47 00:02:04,120 --> 00:02:05,520 verkfæri sem við höfum. 48 00:02:05,520 --> 00:02:08,520 Þegar þú finnur sjálfur frammi fyrir verkefni sem virðist leiðinlegur eða 49 00:02:08,520 --> 00:02:11,940 algeng, eins og að finna lengd C band, þú 50 00:02:11,940 --> 00:02:14,020 ættir að spyrja þig hvort það gæti verið að ræða að 51 00:02:14,020 --> 00:02:16,520 einhver er nú þegar gert það sama áður. 52 00:02:16,520 --> 00:02:17,760 Líklega er að þú getur fundið 53 00:02:17,760 --> 00:02:20,110 hjálp innan safnsins. 54 00:02:20,110 --> 00:02:23,260 >> Svo í tæknilegum hugtökum, bókasafn er tvöfaldur skrá sem 55 00:02:23,260 --> 00:02:26,210 hefur verið framleidd með því að tengja saman safn af 56 00:02:26,210 --> 00:02:28,880 mótmæla skrár nota tól sem heitir, þú 57 00:02:28,880 --> 00:02:31,010 giska á það, the linker. 58 00:02:31,010 --> 00:02:33,830 Object skrár eru þeir. O skrár sem þú færð þegar þú 59 00:02:33,830 --> 00:02:35,860 þýða C kóðann. 60 00:02:35,860 --> 00:02:38,420 Þegar forritarar skrifa bókasöfnum, yfirleitt þeir 61 00:02:38,420 --> 00:02:41,560 skilja C kóða sína í tvær gerðir af skrám: 62 00:02:41,560 --> 00:02:44,880 haus skrá og framkvæmd skrár. 63 00:02:44,880 --> 00:02:49,820 A haus skrá með því að venju er gefið. H skrá eftirnafn, 64 00:02:49,820 --> 00:02:51,940 og það inniheldur kóða sem lýsir safnsins 65 00:02:51,940 --> 00:02:55,120 úrræði sem eru í boði fyrir þig að nota. 66 00:02:55,120 --> 00:02:58,830 Þessar auðlindir eru aðgerðir, breytur, structs, 67 00:02:58,830 --> 00:03:01,980 tegund skilgreiningar, og svo framvegis, og saman eru þeir 68 00:03:01,980 --> 00:03:04,620 almennt nefndur tengi. 69 00:03:04,620 --> 00:03:07,280 Í staðreynd, ef þú ert alltaf að velta fyrir mér hvað er á bókasafni, 70 00:03:07,280 --> 00:03:09,580 Hausinn skrár eru staðurinn til að leita. 71 00:03:09,580 --> 00:03:14,030 >> Til dæmis, er hægt að draga upp usr / fela / stdio.h og athuga 72 00:03:14,030 --> 00:03:16,210 út allt sem þú vildir alltaf vita um 73 00:03:16,210 --> 00:03:18,570 staðlaða IO bókasafn. 74 00:03:18,570 --> 00:03:20,610 There er a einhver fjöldi af efni á hér, og það getur tekið smá 75 00:03:20,610 --> 00:03:22,420 tími til að vaða í gegnum. 76 00:03:22,420 --> 00:03:25,840 Hins vegar, ásamt Google og manpages, þetta er 77 00:03:25,840 --> 00:03:28,060 staður til að fara ef þú ert að velta fyrir mér hvernig staðall I / O 78 00:03:28,060 --> 00:03:30,460 bókasafn aðgerðir virka. 79 00:03:30,460 --> 00:03:33,910 Svo einn lykill hlutur til að hafa í huga hér, þó er, að haus skrár 80 00:03:33,910 --> 00:03:36,740 venjulega innihalda ekki virka skilgreiningar - 81 00:03:36,740 --> 00:03:40,020 það er í raun gerð virka. 82 00:03:40,020 --> 00:03:42,470 Þetta er dæmi um mikilvægt tölvunarfræði 83 00:03:42,470 --> 00:03:45,700 meginreglu sem heitir upplýsingar felum, einnig vísað til í 84 00:03:45,700 --> 00:03:48,960 sinnum hjúpun. 85 00:03:48,960 --> 00:03:52,630 >> Sem notandi eða viðskiptavinur á bókasafni, þú þarft ekki að 86 00:03:52,630 --> 00:03:54,230 vita um innri safnsins í 87 00:03:54,230 --> 00:03:55,380 til að nota það. 88 00:03:55,380 --> 00:03:57,800 Mundu að sjá printf bara svolítið síðan? 89 00:03:57,800 --> 00:04:00,275 Hafðir þú séð raunverulegan kóða áður? 90 00:04:00,275 --> 00:04:02,535 Jæja, ætla ég að þú hafir ekki, jafnvel þó að þú gætir 91 00:04:02,535 --> 00:04:05,090 hafa notað printf tonn af sinnum. 92 00:04:05,090 --> 00:04:08,110 Allt sem þú þurfti að vita var yfirlýsing virka staðar 93 00:04:08,110 --> 00:04:10,940 í stdio.h haus skrá. 94 00:04:10,940 --> 00:04:14,010 Engu að síður, að ávinningur af góðum upplýsingar felum er að þú 95 00:04:14,010 --> 00:04:16,820 og forrit sem þú skrifar eru einangruð frá hvers kyns breytingar á 96 00:04:16,820 --> 00:04:20,209 kóði framkvæmd virka bókasafn. 97 00:04:20,209 --> 00:04:22,880 Ef framkvæmd printf breytingar, þú þarft ekki 98 00:04:22,880 --> 00:04:26,310 að fara og breyta öllum áætlunum þínum sem nota printf. 99 00:04:26,310 --> 00:04:28,450 >> Svo hvar er framkvæmd fara? 100 00:04:28,450 --> 00:04:31,020 Jæja, aftur, með því að venju, framkvæmd fer í a 101 00:04:31,020 --> 00:04:34,310 skrá með. c skrá eftirnafn. 102 00:04:34,310 --> 00:04:36,820 Venjulega fara haus skrá og framkvæmd skrár hönd 103 00:04:36,820 --> 00:04:39,380 í hendi, þannig að ef þú hefur lýst yfir fullt af nýjum streng 104 00:04:39,380 --> 00:04:42,950 aðgerðir í mystring.h, þá munt þú skilgreina alla 105 00:04:42,950 --> 00:04:46,960 þeir virka í mystring. c. 106 00:04:46,960 --> 00:04:49,230 Svo þá haus og framkvæmd skrár eru þá 107 00:04:49,230 --> 00:04:52,230 saman, búa til mótmæla skrár sem eru síðan tengd 108 00:04:52,230 --> 00:04:55,360 saman að því að framleiða bókasafn tvöfaldur skrá. 109 00:04:55,360 --> 00:04:58,520 Bókasafnið rithöfundur þá skip tvöfaldur skrá ásamt 110 00:04:58,520 --> 00:05:00,720 með haus skrá til forritara sem vilja nota 111 00:05:00,720 --> 00:05:02,280 bókasafn. 112 00:05:02,280 --> 00:05:04,640 Á þessum tímapunkti, eru. C framkvæmd skrá ekki 113 00:05:04,640 --> 00:05:07,840 þörf, nema að laun á bókasafnið frá grunni, svo 114 00:05:07,840 --> 00:05:10,270 þeir eru oft vinstri út. 115 00:05:10,270 --> 00:05:13,670 >> Til að nota C bókasafn, þú þarft að gera tvennt. 116 00:05:13,670 --> 00:05:16,890 Fyrst verður þú að # include haus skrár safnsins og 117 00:05:16,890 --> 00:05:18,700 Kóðinn skrá þar sem þú vilt nota 118 00:05:18,700 --> 00:05:20,530 safnsins kóða. 119 00:05:20,530 --> 00:05:23,200 Þetta upplýsir þýðanda á allar yfirlýsingar 120 00:05:23,200 --> 00:05:26,890 virka, breytur, structs, et cetera, nútíð í 121 00:05:26,890 --> 00:05:30,510 haus skrár þannig að þýðandi getur einn, tryggja að 122 00:05:30,510 --> 00:05:33,280 þú ert að nota auðlindir safnsins á viðeigandi hátt, 123 00:05:33,280 --> 00:05:37,120 og tveir, mynda viðeigandi samkoma kóða. 124 00:05:37,120 --> 00:05:38,910 Það fer eftir því hvar haus skrár safnsins eru 125 00:05:38,910 --> 00:05:42,720 staðsett, # include setningafræði breytileg. 126 00:05:42,720 --> 00:05:44,880 Ef haus skrár eru staðsett í kerfinu er 127 00:05:44,880 --> 00:05:46,690 sjálfgefið fela möppu - 128 00:05:46,690 --> 00:05:48,780 Venjulega usr/include-- 129 00:05:48,780 --> 00:05:52,200 þá horn sviga setningafræði er notað, eins og # include 130 00:05:52,200 --> 00:05:53,450 . 131 00:05:57,440 --> 00:05:59,540 Hins vegar, ef haus skrár eru staðsett í sama 132 00:05:59,540 --> 00:06:02,960 skrá sem eigin númer þitt, tvöfaldur vitna setningafræði er 133 00:06:02,960 --> 00:06:04,870 notuð, eins og í # include "mylib.h". 134 00:06:08,630 --> 00:06:11,220 >> Annað sem þú þarft að gera er að tengja í the tvöfaldur 135 00:06:11,220 --> 00:06:13,760 bókasafn skrá þegar þú þýða kóðann þinn. 136 00:06:13,760 --> 00:06:15,810 Þetta er frábær mikilvægt skref. 137 00:06:15,810 --> 00:06:17,540 Mundu áðan umfjöllun okkar um hvernig haus 138 00:06:17,540 --> 00:06:20,200 skrár innihalda ekki framkvæmd kóða? 139 00:06:20,200 --> 00:06:22,200 Ef þú gleymir þetta skref, munt þú fá villur um 140 00:06:22,200 --> 00:06:24,990 undefined tákn vísað í kóðann þinn. 141 00:06:24,990 --> 00:06:29,580 Til að leysa þetta, nota-L fáninn fylgt strax 142 00:06:29,580 --> 00:06:32,320 án rúm með nafni safnsins. 143 00:06:32,320 --> 00:06:35,410 Á mörgum kerfum, þ.mt tæki, C Standard 144 00:06:35,410 --> 00:06:38,350 Bókasöfn eru sjálfkrafa tengd þér. 145 00:06:38,350 --> 00:06:41,700 Hins vegar er stærðfræði bókasafn stundum búnt sérstaklega 146 00:06:41,700 --> 00:06:44,600 og gæti þurft að vera orðaður við-LM. 147 00:06:44,600 --> 00:06:47,760 Á tækinu, taka við umönnun á þetta fyrir þig, og við líka 148 00:06:47,760 --> 00:06:52,170 tengja CS50 bókasafn með-lcs50. 149 00:06:52,170 --> 00:06:54,540 Þú getur séð þetta allt á tækinu þegar þú keyrir að gera. 150 00:06:57,620 --> 00:06:59,130 >> Nú ættir þú að hafa þá þekkingu sem þú þarft að nota 151 00:06:59,130 --> 00:07:02,150 bókasöfn á C. Hafa gaman að skoða. 152 00:07:02,150 --> 00:07:05,880 Ég heiti Nate Hardison, og þetta er CS50.