1 00:00:06,692 --> 00:00:09,470 [Powered by Google Translate] Nate HARDISON: Nan pwogramasyon, yon bibliyotèk se yon koleksyon 2 00:00:09,470 --> 00:00:11,380 ki gen rapò ak kòd prewritten. 3 00:00:11,380 --> 00:00:14,350 Bibliyotèk yo ap kijan nou, menm jan pwogramasyon, pati nan komen ak 4 00:00:14,350 --> 00:00:16,930 itil kòd youn ak lòt, ak pwogram yo diferan nou 5 00:00:16,930 --> 00:00:19,470 ekri, e menm ak pwosesis yo diferan kouri nan 6 00:00:19,470 --> 00:00:21,380 an menm tan nan konpitè nou an. 7 00:00:21,380 --> 00:00:23,000 >> Se pou nou eksplore yon ti jan. 8 00:00:23,000 --> 00:00:25,070 Youn nan fonksyon sa yo ke ou te pwobableman pi komen 9 00:00:25,070 --> 00:00:27,500 te lè l sèvi avèk fonksyon an se printf. 10 00:00:27,500 --> 00:00:29,820 Koulye a, printf se pa kèk fonksyon majik ki te gen 11 00:00:29,820 --> 00:00:31,670 difisil-kode nan òdinatè a - 12 00:00:31,670 --> 00:00:34,320 olye, li nan yon pati nan Bibliyotèk yo Creole C yo, ki se 13 00:00:34,320 --> 00:00:36,080 yon koleksyon fonksyon ki vini ak nan 14 00:00:36,080 --> 00:00:38,050 C pwogramasyon lang. 15 00:00:38,050 --> 00:00:40,920 Depi printf se pa sa bati nan òdinatè a, ki vle di ke 16 00:00:40,920 --> 00:00:43,520 te gen kèk pwogramè ki aktyèlman ale nan e li te ekri a 17 00:00:43,520 --> 00:00:46,310 printf fonksyon ak fourni l 'ak rès la nan estanda a 18 00:00:46,310 --> 00:00:48,880 bibliyotèk pou ke pwogramasyon lavni pa ta gen yo 19 00:00:48,880 --> 00:00:50,310 kopi efò a. 20 00:00:50,310 --> 00:00:52,620 Ak nou ap asire w rekonesan ke sa a, se ka a, paske tcheke 21 00:00:52,620 --> 00:00:54,710 ki kantite lajan ou kòd li aktyèlman pran aplike printf. 22 00:00:59,590 --> 00:01:02,860 >> C Bibliyotèk estanda a, peyi ki printf se yon pati, se 23 00:01:02,860 --> 00:01:04,480 youn nan zouti ki pi enpòtan ou 24 00:01:04,480 --> 00:01:06,770 genyen nan abòde CS50. 25 00:01:06,770 --> 00:01:08,780 Anplis de sa nan bibliyotèk la Antre-Sòti ki kote 26 00:01:08,780 --> 00:01:11,370 lavi printf, gen yon pakèt moun sou bibliyotèk ki lòt 27 00:01:11,370 --> 00:01:14,230 ou pral pwobableman itilize sou kou nan CS50. 28 00:01:14,230 --> 00:01:16,730 Pou egzanp, bibliyotèk la fisèl la gen fonksyon 29 00:01:16,730 --> 00:01:20,960 konpare C strings, jwenn longè yo, epi yo anchene yo. 30 00:01:20,960 --> 00:01:22,410 Ak bibliyotèk la matematik ba ou itil 31 00:01:22,410 --> 00:01:25,062 konstan, tankou pi ak e. 32 00:01:25,062 --> 00:01:27,650 Koulye a, konpare ak bibliyotèk yo estanda nan pwogram lòt 33 00:01:27,650 --> 00:01:31,190 lang, C Bibliyotèk yo Creole yo se reyèlman piti, 34 00:01:31,190 --> 00:01:34,060 men yo toujou gen yon kantite siyifikatif bagay. 35 00:01:34,060 --> 00:01:36,370 Epi sa a, pa vle di ke Bibliyotèk yo Creole se nan 36 00:01:36,370 --> 00:01:39,020 sèlman C bibliyotèk; gen anpil plis yo deyò nan a 37 00:01:39,020 --> 00:01:42,460 mond pou ou pou w itilize, ki gen ladan Bibliyotèk la CS50, 38 00:01:42,460 --> 00:01:45,150 kartografye bibliyotèk ak chifreman ak dekripte 39 00:01:45,150 --> 00:01:48,000 fonksyon, bibliyotèk ak fonksyon programme ak 40 00:01:48,000 --> 00:01:50,970 jwe tounen videyo, ak sou sa. 41 00:01:50,970 --> 00:01:53,190 >> Sa a pote nou nan yon sou kote enpòtan. 42 00:01:53,190 --> 00:01:55,500 Youn nan teknik ki esansyèl nan jeni se konnen nan 43 00:01:55,500 --> 00:01:58,090 zouti ki disponib nan bwat zouti pou ou pou sa ou ka sèvi ak 44 00:01:58,090 --> 00:01:59,850 yo, epi evite reenvante wou an sof si 45 00:01:59,850 --> 00:02:01,510 ou gen yo fè sa. 46 00:02:01,510 --> 00:02:04,120 Kòm pwogramasyon, bibliyotèk yo se youn nan pi enpòtan an 47 00:02:04,120 --> 00:02:05,520 zouti nou genyen. 48 00:02:05,520 --> 00:02:08,520 Lè ou jwenn tèt ou fè fas a yon travay ki sanble fatigan oswa 49 00:02:08,520 --> 00:02:11,940 courante, tankou dekouvri longè yon fisèl C, ou 50 00:02:11,940 --> 00:02:14,020 ta dwe mande tèt ou si li ta ka ka a ki 51 00:02:14,020 --> 00:02:16,520 yon moun nan deja fè menm bagay la anvan. 52 00:02:16,520 --> 00:02:17,760 Chans yo se ke ou ta ka jwenn kèk 53 00:02:17,760 --> 00:02:20,110 ede nan yon bibliyotèk. 54 00:02:20,110 --> 00:02:23,260 >> Se konsa, an tèm teknik, yon bibliyotèk se yon dosye binè ki 55 00:02:23,260 --> 00:02:26,210 ki te pwodwi pa ki lye ak ansanm yon koleksyon 56 00:02:26,210 --> 00:02:28,880 dosye objè lè l sèvi avèk yon zouti ki rele, ou 57 00:02:28,880 --> 00:02:31,010 dvine li, Linkshere la. 58 00:02:31,010 --> 00:02:33,830 Dosye objè moun sa yo ki. Dosye o ke ou jwenn lè ou 59 00:02:33,830 --> 00:02:35,860 konpile C kòd sous. 60 00:02:35,860 --> 00:02:38,420 Lè pwogramasyon ekri bibliyotèk, anjeneral, yo 61 00:02:38,420 --> 00:02:41,560 separe kòd C yo nan de kalite dosye: 62 00:02:41,560 --> 00:02:44,880 header dosye ak dosye aplikasyon. 63 00:02:44,880 --> 00:02:49,820 Yon dosye header nan konvansyon bay yo. Ekstansyon an dosye h, 64 00:02:49,820 --> 00:02:51,940 epi li gen kòd ki deklare nan bibliyotèk la 65 00:02:51,940 --> 00:02:55,120 resous ki disponib pou ou pou w itilize. 66 00:02:55,120 --> 00:02:58,830 Resous sa yo gen ladan yo fonksyon, varyab, strukt, 67 00:02:58,830 --> 00:03:01,980 definisyon tip, ak sou sa, epi ansanm, yo se 68 00:03:01,980 --> 00:03:04,620 souvan refere li kòm koòdone la. 69 00:03:04,620 --> 00:03:07,280 An reyalite, si w ap janm mande sa ki nan yon bibliyotèk, yon 70 00:03:07,280 --> 00:03:09,580 dosye yo header yo se kote yo gade. 71 00:03:09,580 --> 00:03:14,030 >> Pou egzanp, ou ka rale moute uzr / gen ladan / stdio.h epi tcheke 72 00:03:14,030 --> 00:03:16,210 soti tout sa ou janm te vle konnen sou 73 00:03:16,210 --> 00:03:18,570 estanda IO bibliyotèk la. 74 00:03:18,570 --> 00:03:20,610 Genyen nan yon anpil nan bagay nan isit la, epi li ka pran yon ti jan nan 75 00:03:20,610 --> 00:03:22,420 tan pase mache nan. 76 00:03:22,420 --> 00:03:25,840 Sepandan, ansanm ak Google ak manpaj yo, sa a se nan 77 00:03:25,840 --> 00:03:28,060 mete yo ale, si w ap mande ki jan estanda a mwen / O 78 00:03:28,060 --> 00:03:30,460 fonksyon bibliyotèk travay. 79 00:03:30,460 --> 00:03:33,910 Se konsa, yon sèl bagay kle nan note isit la, menm si, se ke dosye header 80 00:03:33,910 --> 00:03:36,740 tipikman pa gen ladan yo definisyon fonksyon - 81 00:03:36,740 --> 00:03:40,020 ki se, en yo fonksyon aktyèl. 82 00:03:40,020 --> 00:03:42,470 Sa a se yon demonstrasyon pou montre yon syans òdinatè enpòtan 83 00:03:42,470 --> 00:03:45,700 prensip yo rele kache enfòmasyon, tou refere yo nan 84 00:03:45,700 --> 00:03:48,960 fwa kòm ANKAPSILASYON. 85 00:03:48,960 --> 00:03:52,630 >> Kòm itilizatè a oswa kliyan an nan yon bibliyotèk, ou pa bezwen 86 00:03:52,630 --> 00:03:54,230 konnen sou entèrn yo nan bibliyotèk la nan 87 00:03:54,230 --> 00:03:55,380 bay lòd pou yo itilize li. 88 00:03:55,380 --> 00:03:57,800 Sonje wè printf jis yon ti jan de sa? 89 00:03:57,800 --> 00:04:00,275 Te ou janm wè kòd aktyèl la ye anvan an? 90 00:04:00,275 --> 00:04:02,535 Oke, mwen asime ke ou genyen pa, menm si ou ka vle konsidere 91 00:04:02,535 --> 00:04:05,090 te itilize tòn printf nan fwa. 92 00:04:05,090 --> 00:04:08,110 Tout sa ou te gen yo konnen te prezan nan deklarasyon fonksyon 93 00:04:08,110 --> 00:04:10,940 nan dosye a header stdio.h. 94 00:04:10,940 --> 00:04:14,010 Anyway, benefis nan kache enfòmasyon bon se ke ou 95 00:04:14,010 --> 00:04:16,820 ak pwogram sa yo ou ekri yo izole yo de nenpòt chanjman nan 96 00:04:16,820 --> 00:04:20,209 kòd la nan aplikasyon an nan fonksyon bibliyotèk la. 97 00:04:20,209 --> 00:04:22,880 Si aplikasyon an nan chanjman printf, ou pa gen 98 00:04:22,880 --> 00:04:26,310 ale ak chanje tout pwogram ou a, ki itilize printf. 99 00:04:26,310 --> 00:04:28,450 >> Se konsa, kote aplikasyon 'al jwenn? 100 00:04:28,450 --> 00:04:31,020 Oke, ankò, pa konvansyon, egzekisyon an ale nan yon 101 00:04:31,020 --> 00:04:34,310 dosye avèk yo. ekstansyon an dosye c. 102 00:04:34,310 --> 00:04:36,820 Anjeneral, dosye header ak dosye aplikasyon ale men 103 00:04:36,820 --> 00:04:39,380 nan men, se konsa si ou te deklare yon pakèt moun sou fisèl nouvo 104 00:04:39,380 --> 00:04:42,950 fonksyon nan mystring.h, lè sa a ou pral defini tout 105 00:04:42,950 --> 00:04:46,960 sa yo fonksyon nan mystring. c. 106 00:04:46,960 --> 00:04:49,230 Se konsa, Lè sa a, dosye yo header ak aplikasyon yo se Lè sa a, 107 00:04:49,230 --> 00:04:52,230 konpile, kreye dosye objè ke yo Lè sa a, lye 108 00:04:52,230 --> 00:04:55,360 ansanm yo pwodwi dosye a bibliyotèk binè. 109 00:04:55,360 --> 00:04:58,520 Ekriven bibliyotèk la pral Lè sa a bato dosye a binè ansanm 110 00:04:58,520 --> 00:05:00,720 ak dosye yo header pwogramasyon ki ta vle itilize 111 00:05:00,720 --> 00:05:02,280 bibliyotèk la. 112 00:05:02,280 --> 00:05:04,640 Nan pwen sa a,. Dosye yo aplikasyon c yo pa 113 00:05:04,640 --> 00:05:07,840 nesesè, sof nan compile bibliyotèk la nan grate, se konsa 114 00:05:07,840 --> 00:05:10,270 yo ap souvan kite deyò. 115 00:05:10,270 --> 00:05:13,670 >> Pou itilize bibliyotèk la C, sa ou dwe fè de bagay sa yo. 116 00:05:13,670 --> 00:05:16,890 Toudabò, ou dwe gen ladan yo # dosye yo header bibliyotèk la ak 117 00:05:16,890 --> 00:05:18,700 sous kòd dosye kote ou ta renmen itilize 118 00:05:18,700 --> 00:05:20,530 kòd bibliyotèk la. 119 00:05:20,530 --> 00:05:23,200 Sa a enfòme du a nan tout deklarasyon ki nan 120 00:05:23,200 --> 00:05:26,890 fonksyon, varyab, strukt, et setra,, prezan, nan la 121 00:05:26,890 --> 00:05:30,510 dosye header pou ke du a kapab yon sèl, asire ke 122 00:05:30,510 --> 00:05:33,280 w ap sèvi ak resous bibliyotèk la nan fason ki kòrèk, 123 00:05:33,280 --> 00:05:37,120 ak de, jenere kòd la tout pèp ki apwopriye yo. 124 00:05:37,120 --> 00:05:38,910 Tou depan de ki kote dosye header bibliyotèk la a yo se 125 00:05:38,910 --> 00:05:42,720 ki sitiye, sentaks la # enkli varye. 126 00:05:42,720 --> 00:05:44,880 Si dosye yo header yo sitiye nan nan a sistèm 127 00:05:44,880 --> 00:05:46,690 default gen ladan anyè - 128 00:05:46,690 --> 00:05:48,780 tipikman, usr/include-- 129 00:05:48,780 --> 00:05:52,200 Lè sa a, se ang parantèz sentaks la itilize, tankou nan # gen ladan yo 130 00:05:52,200 --> 00:05:53,450 . 131 00:05:57,440 --> 00:05:59,540 Sepandan, si dosye yo header yo sitiye nan menm bagay la tou 132 00:05:59,540 --> 00:06:02,960 anyè kòm kòd pwòp ou a, sentaks la quote doub se 133 00:06:02,960 --> 00:06:04,870 itilize, tankou nan # enkli "mylib.h". 134 00:06:08,630 --> 00:06:11,220 >> Bagay la dezyèm ou gen fè se lyen an nan binè la 135 00:06:11,220 --> 00:06:13,760 dosye bibliyotèk lè ou konpile kòd ou a. 136 00:06:13,760 --> 00:06:15,810 Sa a se yon etap super enpòtan. 137 00:06:15,810 --> 00:06:17,540 Sonje diskisyon pi bonè nou an sou ki jan header 138 00:06:17,540 --> 00:06:20,200 dosye pa gen kòd aplikasyon? 139 00:06:20,200 --> 00:06:22,200 Si ou ta bliye etap sa a, ou pral jwenn erè sou 140 00:06:22,200 --> 00:06:24,990 senbòl endefini referans nan kòd ou a. 141 00:06:24,990 --> 00:06:29,580 Pou rezoud sa a, sèvi ak L-drapo a swiv imedyatman 142 00:06:29,580 --> 00:06:32,320 san yon espas pa non an nan bibliyotèk la. 143 00:06:32,320 --> 00:06:35,410 Sou sistèm anpil, ki gen ladan aparèy la, Creole nan C 144 00:06:35,410 --> 00:06:38,350 Bibliyotèk yo otomatikman lye pou ou. 145 00:06:38,350 --> 00:06:41,700 Sepandan, se bibliyotèk la matematik pafwa fourni separeman 146 00:06:41,700 --> 00:06:44,600 ak ta ka bezwen yo dwe lye avèk-LM. 147 00:06:44,600 --> 00:06:47,760 Sou aparèy la, nou pran swen nan sa a pou ou, epi nou menm tou nou 148 00:06:47,760 --> 00:06:52,170 konekte bibliyotèk la CS50 ak-lcs50. 149 00:06:52,170 --> 00:06:54,540 Ou ka wè tout bagay sa yo sou aparèy la lè ou kouri fè. 150 00:06:57,620 --> 00:06:59,130 >> Koulye a, ou ta dwe gen konesans nan ou bezwen sèvi ak 151 00:06:59,130 --> 00:07:02,150 bibliyotèk nan C. Pran plezi eksplore. 152 00:07:02,150 --> 00:07:05,880 Non mwen se Nate Hardison, e sa se CS50.