1 00:00:06,692 --> 00:00:09,470 [Powered by Google Translate] NATE HARDISON: programmēšanas, bibliotēka ir kolekcija 2 00:00:09,470 --> 00:00:11,380 saistīto iepriekš uzrakstīta kodu. 3 00:00:11,380 --> 00:00:14,350 Bibliotēkas ir kā mēs, jo programmētāji, kopīgas un 4 00:00:14,350 --> 00:00:16,930 noderīga kods ar otru, ar dažādām programmām, kuras mēs 5 00:00:16,930 --> 00:00:19,470 rakstīt, un pat ar dažādiem procesiem darbojas 6 00:00:19,470 --> 00:00:21,380 Vienlaikus mūsu datoros. 7 00:00:21,380 --> 00:00:23,000 >> Izpētīsim mazliet. 8 00:00:23,000 --> 00:00:25,070 Viens no biežāk funkcijas, kas jums, iespējams, 9 00:00:25,070 --> 00:00:27,500 lietoju ir printf funkciju. 10 00:00:27,500 --> 00:00:29,820 Tagad, printf nav dažas burvju funkcija, kas ir bijis 11 00:00:29,820 --> 00:00:31,670 grūti kodē uz datora - 12 00:00:31,670 --> 00:00:34,320 Drīzāk, tas ir daļa no C standarta bibliotēkām, kuras ir 13 00:00:34,320 --> 00:00:36,080 kolekcija funkcijas, kas nāk ar 14 00:00:36,080 --> 00:00:38,050 C programmēšanas valoda. 15 00:00:38,050 --> 00:00:40,920 Tā printf nav iebūvēts dators, kas nozīmē, ka 16 00:00:40,920 --> 00:00:43,520 tur bija daži programmētājs, kas faktiski gāja un uzrakstīja 17 00:00:43,520 --> 00:00:46,310 printf funkciju un komplektā to ar pārējo standarta 18 00:00:46,310 --> 00:00:48,880 bibliotēkas, lai nākamie programmētājiem nebūtu 19 00:00:48,880 --> 00:00:50,310 dublēt pūles. 20 00:00:50,310 --> 00:00:52,620 Un mēs esam pārliecināti, pateicīgi, ka tas ir gadījumā, jo pārbaudīt 21 00:00:52,620 --> 00:00:54,710 cik daudz koda tas faktiski nepieciešams, lai īstenotu printf. 22 00:00:59,590 --> 00:01:02,860 >> Vai C Standarta Bibliotēkas, no kuriem printf ir daļa, ir 23 00:01:02,860 --> 00:01:04,480 viens no svarīgākajiem instrumentiem jums 24 00:01:04,480 --> 00:01:06,770 ir problēmas risināšanā CS50. 25 00:01:06,770 --> 00:01:08,780 Papildus izejvielu un produkcijas bibliotēkā, kur 26 00:01:08,780 --> 00:01:11,370 printf dzīve, ir ķekars citām bibliotēkām, kas 27 00:01:11,370 --> 00:01:14,230 jūs, iespējams izmantot gaitā CS50. 28 00:01:14,230 --> 00:01:16,730 Piemēram, stīgu bibliotēkai ir funkcijas 29 00:01:16,730 --> 00:01:20,960 salīdzināt C stīgas, saņemt savu garumu, un saķēdēt tos. 30 00:01:20,960 --> 00:01:22,410 Un matemātikas bibliotēka sniedz jums noderīga 31 00:01:22,410 --> 00:01:25,062 konstantes, piemēram, pi un e. 32 00:01:25,062 --> 00:01:27,650 Tagad, salīdzinot ar standarta bibliotēkām citu programmu 33 00:01:27,650 --> 00:01:31,190 valodās, C standarta Bibliotēkas ir ļoti maza, 34 00:01:31,190 --> 00:01:34,060 bet tie joprojām ir ievērojams daudzums sīkumi. 35 00:01:34,060 --> 00:01:36,370 Un tas nav teikt, ka standarta Bibliotēkas ir 36 00:01:36,370 --> 00:01:39,020 tikai C bibliotēkas, tur ir daudz vairāk, kas tur 37 00:01:39,020 --> 00:01:42,460 pasaules, lai jūs varētu izmantot, ieskaitot CS50 bibliotēkā, 38 00:01:42,460 --> 00:01:45,150 kartogrāfija bibliotēkas ar šifrēšanu un atšifrēšanu 39 00:01:45,150 --> 00:01:48,000 funkcijas, bibliotēkas ar funkcijām, lai šifrēt un 40 00:01:48,000 --> 00:01:50,970 atskaņot video, un tā tālāk. 41 00:01:50,970 --> 00:01:53,190 >> Tas parādīs mums uz svarīgu malā. 42 00:01:53,190 --> 00:01:55,500 Viens no būtiskiem prasmes inženierijas zinot 43 00:01:55,500 --> 00:01:58,090 instrumentus, kas pieejami jūsu kompleksa, lai jūs varētu izmantot 44 00:01:58,090 --> 00:01:59,850 tos un izvairīties no jauna izgudrot riteni, ja vien 45 00:01:59,850 --> 00:02:01,510 Jums to darīt. 46 00:02:01,510 --> 00:02:04,120 Kā programmētāji, bibliotēkas ir viens no svarīgākajiem 47 00:02:04,120 --> 00:02:05,520 instrumenti mums ir. 48 00:02:05,520 --> 00:02:08,520 Kad jums atrast sev saskaras ar uzdevumu, kas šķiet garlaicīgs vai 49 00:02:08,520 --> 00:02:11,940 ikdienišķa, kā atrast garumu C virknes, jūs 50 00:02:11,940 --> 00:02:14,020 vajadzētu uzdot sevi, ja tas varētu būt, ka 51 00:02:14,020 --> 00:02:16,520 kāds ir jau izdarīts pats pirms tam. 52 00:02:16,520 --> 00:02:17,760 Iespējams, ka jūs varētu atrast kādu 53 00:02:17,760 --> 00:02:20,110 palīdzēt ietvaros bibliotēkā. 54 00:02:20,110 --> 00:02:23,260 >> Tātad tehniskā ziņā, bibliotēka ir binārs fails, 55 00:02:23,260 --> 00:02:26,210 ir ražots, savienojot kopā kolekcija 56 00:02:26,210 --> 00:02:28,880 objekts failus, izmantojot rīku sauc, tu 57 00:02:28,880 --> 00:02:31,010 uzminējāt, linker. 58 00:02:31,010 --> 00:02:33,830 Objektu faili ir tie o faili, kas jums, kad jūs. 59 00:02:33,830 --> 00:02:35,860 apkopo C avota kodu. 60 00:02:35,860 --> 00:02:38,420 Kad programmētāji rakstīt bibliotēkas, tie parasti 61 00:02:38,420 --> 00:02:41,560 atdalīt C kodu divu veidu failus: 62 00:02:41,560 --> 00:02:44,880 header failus un īstenošanas failus. 63 00:02:44,880 --> 00:02:49,820 Header failu pēc vienošanās tiek dota. H faila paplašinājumu, 64 00:02:49,820 --> 00:02:51,940 un tas satur kodu, kas apliecina, bibliotēkas 65 00:02:51,940 --> 00:02:55,120 resursiem, kas ir pieejami, lai jūs varētu izmantot. 66 00:02:55,120 --> 00:02:58,830 Šie resursi ietver funkcijas, mainīgie, structs, 67 00:02:58,830 --> 00:03:01,980 tipa definīcijas, un tā tālāk, un kopā tie ir 68 00:03:01,980 --> 00:03:04,620 parasti sauc par interfeisu. 69 00:03:04,620 --> 00:03:07,280 Patiesībā, ja jūs kādreiz jautājums, kas ir bibliotēkā, 70 00:03:07,280 --> 00:03:09,580 header faili ir vieta, kur meklēt. 71 00:03:09,580 --> 00:03:14,030 >> Piemēram, jūs varat uzvilkt usr / ietver / stdio.h un pārbaudīt 72 00:03:14,030 --> 00:03:16,210 veic visu, kas jums kādreiz gribēja zināt par 73 00:03:16,210 --> 00:03:18,570 standarta IO bibliotēka. 74 00:03:18,570 --> 00:03:20,610 Tur no stuff šeit daudz, un tas var būt mazliet 75 00:03:20,610 --> 00:03:22,420 laiks brist cauri. 76 00:03:22,420 --> 00:03:25,840 Tomēr, kopā ar Google un manpages, tas ir 77 00:03:25,840 --> 00:03:28,060 vieta, kur iet, ja jūs domājām, kā standarta I / O 78 00:03:28,060 --> 00:03:30,460 bibliotēkas funkcijas strādā. 79 00:03:30,460 --> 00:03:33,910 Tāpēc viens svarīgs lieta atzīmēt šeit, lai gan, ir tas, ka header failus 80 00:03:33,910 --> 00:03:36,740 parasti neiekļauj funkciju definīcijas - 81 00:03:36,740 --> 00:03:40,020 tas ir, faktiskās funkciju realizācijas. 82 00:03:40,020 --> 00:03:42,470 Tas ir ilustrācija svarīgu datorzinātņu 83 00:03:42,470 --> 00:03:45,700 princips sauc informācijas slēpšanu, ko dēvē arī par 84 00:03:45,700 --> 00:03:48,960 reizes iekapsulēšanas. 85 00:03:48,960 --> 00:03:52,630 >> Kā lietotājs vai klients par bibliotēkas, jums nav nepieciešams 86 00:03:52,630 --> 00:03:54,230 zināt par bibliotēkas iekšējie pilsētā 87 00:03:54,230 --> 00:03:55,380 lai izmantotu to. 88 00:03:55,380 --> 00:03:57,800 Atceros redzēt printf tikai mazliet pirms? 89 00:03:57,800 --> 00:04:00,275 Vai Jūs kādreiz esat redzējis faktisko kodu pirms? 90 00:04:00,275 --> 00:04:02,535 Nu, es pieņemu, ka jums nav, lai gan jūs varētu 91 00:04:02,535 --> 00:04:05,090 ir izmantoti printf tonnas reizes. 92 00:04:05,090 --> 00:04:08,110 Viss, kas jums bija jāzina, bija funkciju deklarācijas pašreizējā 93 00:04:08,110 --> 00:04:10,940 kas stdio.h header failu. 94 00:04:10,940 --> 00:04:14,010 Anyway, labas informācijas slēpšanās priekšrocība ir, ka jūs 95 00:04:14,010 --> 00:04:16,820 un programmas rakstīt ir izolēta no jebkādām izmaiņām 96 00:04:16,820 --> 00:04:20,209 kods īstenošanas bibliotēkas funkcijas. 97 00:04:20,209 --> 00:04:22,880 Ja printf pārmaiņu ieviešana, jums nav 98 00:04:22,880 --> 00:04:26,310 lai iet un mainīt visas programmas, kas izmanto printf. 99 00:04:26,310 --> 00:04:28,450 >> Tātad, ja tas īstenošana iet? 100 00:04:28,450 --> 00:04:31,020 Nu, atkal, pēc vienošanās, īstenošana iet 101 00:04:31,020 --> 00:04:34,310 fails ar. c faila paplašinājumu. 102 00:04:34,310 --> 00:04:36,820 Parasti, header failus un īstenošanas failus iet roku 103 00:04:36,820 --> 00:04:39,380 rokā, tādēļ, ja jūs esat deklarēta ķekars jaunas virknes 104 00:04:39,380 --> 00:04:42,950 funkcijas mystring.h, tad jūs jādefinē visas 105 00:04:42,950 --> 00:04:46,960 šie funkcijas mystring c.. 106 00:04:46,960 --> 00:04:49,230 Tātad tad header un īstenošanas faili ir tad 107 00:04:49,230 --> 00:04:52,230 apkopoti, veidojot objektu failus, kas pēc tam tiek saistītas 108 00:04:52,230 --> 00:04:55,360 kopā, lai ražotu bināro bibliotēkas failu. 109 00:04:55,360 --> 00:04:58,520 Bibliotēka rakstnieks tad kuģis bināro failu pa 110 00:04:58,520 --> 00:05:00,720 ar header failus uz programmētājiem, kuri vēlas izmantot 111 00:05:00,720 --> 00:05:02,280 bibliotēka. 112 00:05:02,280 --> 00:05:04,640 Šajā brīdī,. C ieviešanas faili nav 113 00:05:04,640 --> 00:05:07,840 nepieciešamas, izņemot recompile bibliotēku no nulles, tāpēc 114 00:05:07,840 --> 00:05:10,270 viņi bieži izlaist. 115 00:05:10,270 --> 00:05:13,670 >> Lai izmantotu C bibliotēka, kas Jums jādara divas lietas. 116 00:05:13,670 --> 00:05:16,890 Pirmkārt, jums ir # ietvert bibliotēkas header failus un 117 00:05:16,890 --> 00:05:18,700 avota kods failu, kur jūs vēlaties izmantot 118 00:05:18,700 --> 00:05:20,530 izveidota bibliotēkas kodu. 119 00:05:20,530 --> 00:05:23,200 Tas informē apkopotāju visu deklarāciju 120 00:05:23,200 --> 00:05:26,890 funkcijas, mainīgie, structs, uc, kas dzīvo 121 00:05:26,890 --> 00:05:30,510 header failus, lai kompilators var vienu, apdrošināt, ka 122 00:05:30,510 --> 00:05:33,280 Jūs izmantojat bibliotēkas resursus pareizā veidā, 123 00:05:33,280 --> 00:05:37,120 un divi, radīt atbilstošu montāžas kodu. 124 00:05:37,120 --> 00:05:38,910 Atkarībā no tā, kur bibliotēkas header faili ir 125 00:05:38,910 --> 00:05:42,720 vietā, # ietvert sintakse atšķiras. 126 00:05:42,720 --> 00:05:44,880 Ja header faili atrodas sistēmas 127 00:05:44,880 --> 00:05:46,690 noklusējuma ir direktoriju - 128 00:05:46,690 --> 00:05:48,780 parasti, usr/include-- 129 00:05:48,780 --> 00:05:52,200 tad leņķis iekavās sintakse tiek izmantota, kā # ietvert 130 00:05:52,200 --> 00:05:53,450 . 131 00:05:57,440 --> 00:05:59,540 Tomēr, ja header faili atrodas tajā pašā 132 00:05:59,540 --> 00:06:02,960 direktorijā, kā savu kodu, dubultā citējot sintakse ir 133 00:06:02,960 --> 00:06:04,870 izmantota, jo # ietvert "mylib.h". 134 00:06:08,630 --> 00:06:11,220 >> Otrā lieta, kas Jums jādara, ir saistīt ar bināro 135 00:06:11,220 --> 00:06:13,760 bibliotēkas failu, kad jūs sastādīt savu kodu. 136 00:06:13,760 --> 00:06:15,810 Tas ir super svarīgs solis. 137 00:06:15,810 --> 00:06:17,540 Atceros mūsu agrāko diskusiju par to, kā iesākums 138 00:06:17,540 --> 00:06:20,200 faili nesatur īstenošanas kodu? 139 00:06:20,200 --> 00:06:22,200 Ja esat aizmirsis šo soli, jūs saņemsiet kļūdas par 140 00:06:22,200 --> 00:06:24,990 undefined simboli atsauce jūsu kodu. 141 00:06:24,990 --> 00:06:29,580 Lai atrisinātu šo, izmantojiet-L karoga sekoja tūlīt 142 00:06:29,580 --> 00:06:32,320 bez telpu ar nosaukumu bibliotēkā. 143 00:06:32,320 --> 00:06:35,410 Daudzos sistēmām, tostarp ierīces, C standarta 144 00:06:35,410 --> 00:06:38,350 Bibliotēkas tiek automātiski saistīti jums. 145 00:06:38,350 --> 00:06:41,700 Tomēr, math bibliotēka reizēm komplektā atsevišķi 146 00:06:41,700 --> 00:06:44,600 un varbūt būtu saistīts ar-LM. 147 00:06:44,600 --> 00:06:47,760 Uz ierīces, mēs rūpējamies par jūsu vietā, un mēs arī 148 00:06:47,760 --> 00:06:52,170 saistīt CS50 bibliotēka ar lcs50-. 149 00:06:52,170 --> 00:06:54,540 Jūs varat redzēt visu šo uz ierīces, kad jūs darbināt darīt. 150 00:06:57,620 --> 00:06:59,130 >> Tagad jums ir jābūt zināšanām, jums vajadzēs lietot 151 00:06:59,130 --> 00:07:02,150 bibliotēkas C. Have fun izpētīt. 152 00:07:02,150 --> 00:07:05,880 Mans vārds ir Nate Hardison, un tas ir CS50.