1 00:00:06,692 --> 00:00:09,470 [Powered by Google Translate] Nate HARDISON: Në programimit, një bibliotekë është një koleksion i 2 00:00:09,470 --> 00:00:11,380 Kodi lidhura prewritten. 3 00:00:11,380 --> 00:00:14,350 Bibliotekat janë si ne, si programuesit, pjesa e përbashkët dhe 4 00:00:14,350 --> 00:00:16,930 Kodi dobishme me njëri-tjetrin, me programet e ndryshme ne 5 00:00:16,930 --> 00:00:19,470 shkruaj, dhe madje edhe me proceset e ndryshme në drejtimin e 6 00:00:19,470 --> 00:00:21,380 Në të njëjtën kohë në kompjuter tonë. 7 00:00:21,380 --> 00:00:23,000 >> Le të shqyrtuar një grimë. 8 00:00:23,000 --> 00:00:25,070 Një nga funksionet më të zakonshme që ju ndoshta keni 9 00:00:25,070 --> 00:00:27,500 përdorur është funksioni printf. 10 00:00:27,500 --> 00:00:29,820 Tani, printf nuk është një funksion magjik që ka qenë 11 00:00:29,820 --> 00:00:31,670 vështirë-koduar në kompjuter - 12 00:00:31,670 --> 00:00:34,320 më tepër, kjo është pjesë e Bibliotekave Standardit C, të cilat janë 13 00:00:34,320 --> 00:00:36,080 një koleksion të funksioneve që vjen me 14 00:00:36,080 --> 00:00:38,050 Gjuha C programimit. 15 00:00:38,050 --> 00:00:40,920 Që printf nuk është ndërtuar në kompjuter, që do të thotë se 16 00:00:40,920 --> 00:00:43,520 ka pasur disa programues i cili në fakt shkoi në dhe shkruante 17 00:00:43,520 --> 00:00:46,310 funksioni printf dhe bundled me pjesën tjetër të standard 18 00:00:46,310 --> 00:00:48,880 bibliotekat në mënyrë që programuesit e ardhshme nuk do të duhet të 19 00:00:48,880 --> 00:00:50,310 kopjuar përpjekje. 20 00:00:50,310 --> 00:00:52,620 Dhe ne jemi të sigurt se kjo është mirënjohës rasti, sepse kontrolloni 21 00:00:52,620 --> 00:00:54,710 se sa ai në fakt merr Kodi për zbatimin printf. 22 00:00:59,590 --> 00:01:02,860 >> Bibliotekat Standard C, e cila është një pjesë e printf, janë 23 00:01:02,860 --> 00:01:04,480 një nga mjetet më të rëndësishme që 24 00:01:04,480 --> 00:01:06,770 kanë në trajtimin CS50. 25 00:01:06,770 --> 00:01:08,780 Përveç bibliotekës input-output ku 26 00:01:08,780 --> 00:01:11,370 printf jeton, ka një bandë e bibliotekave të tjera që 27 00:01:11,370 --> 00:01:14,230 ju ndoshta do të përdorë gjatë rrjedhës së CS50. 28 00:01:14,230 --> 00:01:16,730 Për shembull, biblioteka string ka funksione të 29 00:01:16,730 --> 00:01:20,960 krahasoni strings C, të merrni gjatësinë e tyre, dhe lidh ato. 30 00:01:20,960 --> 00:01:22,410 Dhe biblioteka matematikë ju jep të dobishme 31 00:01:22,410 --> 00:01:25,062 konstanta, si dhe e pi. 32 00:01:25,062 --> 00:01:27,650 Tani, në krahasim me bibliotekat standarde të programimit tjetër 33 00:01:27,650 --> 00:01:31,190 gjuhëve, Bibliotekat Standard C janë me të vërtetë të vogël, 34 00:01:31,190 --> 00:01:34,060 por ata ende kanë një sasi të konsiderueshme të stuff. 35 00:01:34,060 --> 00:01:36,370 Dhe kjo nuk do të thotë se janë Bibliotekat Standard 36 00:01:36,370 --> 00:01:39,020 vetëm C bibliotekat, nuk janë më shumë atje në 37 00:01:39,020 --> 00:01:42,460 Bota për ju për të përdorur, duke përfshirë edhe bibliotekën CS50, 38 00:01:42,460 --> 00:01:45,150 Bibliotekat kartografi me encryption dhe decryption 39 00:01:45,150 --> 00:01:48,000 funksionet, bibliotekat me funksione për të kodifikuar dhe 40 00:01:48,000 --> 00:01:50,970 luajë përsëri video, dhe kështu me radhë. 41 00:01:50,970 --> 00:01:53,190 >> Kjo na sjell në një mënjanë rëndësishme. 42 00:01:53,190 --> 00:01:55,500 Një nga aftësitë esenciale të inxhinierisë është ditur 43 00:01:55,500 --> 00:01:58,090 mjetet në dispozicion në Toolbox tuaj në mënyrë që ju mund të përdorni 44 00:01:58,090 --> 00:01:59,850 ata dhe për të shmangur Reinventing timon përveç 45 00:01:59,850 --> 00:02:01,510 ju duhet të bëni kështu. 46 00:02:01,510 --> 00:02:04,120 Si programuesit, bibliotekat janë një nga më të rëndësishme 47 00:02:04,120 --> 00:02:05,520 mjete ne kemi. 48 00:02:05,520 --> 00:02:08,520 Kur ju të gjeni veten përballet me një detyrë që duket i lodhshëm apo 49 00:02:08,520 --> 00:02:11,940 zakonshme, si gjetja gjatësinë e një varg C, ju 50 00:02:11,940 --> 00:02:14,020 duhet të pyesni veten nëse ajo mund të jetë rasti që 51 00:02:14,020 --> 00:02:16,520 dikush është bërë tashmë të njëjtën gjë më parë. 52 00:02:16,520 --> 00:02:17,760 Shanset janë që ju mund të gjeni disa 53 00:02:17,760 --> 00:02:20,110 ndihmojë brenda një bibliotekë. 54 00:02:20,110 --> 00:02:23,260 >> Pra, në aspektin teknik, një bibliotekë është një file binar që 55 00:02:23,260 --> 00:02:26,210 ka qenë prodhuar duke lidhur së bashku një koleksion të 56 00:02:26,210 --> 00:02:28,880 Fotografi objekt duke përdorur një mjet të quajtur, ju 57 00:02:28,880 --> 00:02:31,010 mendoi ai, i Linker. 58 00:02:31,010 --> 00:02:33,830 Fotografi objekt janë ata. Fotografi o që ju të merrni kur ju 59 00:02:33,830 --> 00:02:35,860 përpilojnë kodin C burim. 60 00:02:35,860 --> 00:02:38,420 Kur programuesit shkruani biblioteka, ata zakonisht 61 00:02:38,420 --> 00:02:41,560 C ndajë kodin e tyre në dy lloje të dosjeve: 62 00:02:41,560 --> 00:02:44,880 fotografi header dhe fotografi zbatimit. 63 00:02:44,880 --> 00:02:49,820 Një skedë header nga Konventa është dhënë extension. H file, 64 00:02:49,820 --> 00:02:51,940 dhe ajo përmban kodin që deklaron Biblioteka e 65 00:02:51,940 --> 00:02:55,120 burimet që janë në dispozicion për ju për të përdorur. 66 00:02:55,120 --> 00:02:58,830 Këto burime përfshijnë funksionet, variablat, structs, 67 00:02:58,830 --> 00:03:01,980 përkufizimet lloji, dhe kështu me radhë, dhe së bashku, ata janë 68 00:03:01,980 --> 00:03:04,620 zakonisht të referuara si interface. 69 00:03:04,620 --> 00:03:07,280 Në fakt, në qoftë se ju jeni të pyesin se çfarë ndonjëherë është në një bibliotekë, 70 00:03:07,280 --> 00:03:09,580 fotografi header janë vendi për të parë. 71 00:03:09,580 --> 00:03:14,030 >> Për shembull, ju mund të tërheqë deri usr / include / stdio.h dhe shikoni 72 00:03:14,030 --> 00:03:16,210 nga çdo gjë keni kërkuar ndonjëherë të dini rreth 73 00:03:16,210 --> 00:03:18,570 standardi biblioteka io. 74 00:03:18,570 --> 00:03:20,610 Ka shumë gjëra në këtu, dhe ajo mund të marrë një grimë e 75 00:03:20,610 --> 00:03:22,420 koha për të hidhem me. 76 00:03:22,420 --> 00:03:25,840 Megjithatë, së bashku me Google dhe manpages, kjo është 77 00:03:25,840 --> 00:03:28,060 vend për të shkuar në qoftë se ju jeni të pyesin se si standarde I / O 78 00:03:28,060 --> 00:03:30,460 funksionet e bibliotekës punojnë. 79 00:03:30,460 --> 00:03:33,910 Pra, një gjë e rëndësishme të theksohet këtu, megjithatë, është se dosjet Header 80 00:03:33,910 --> 00:03:36,740 zakonisht nuk përfshijnë përkufizimet funksion - 81 00:03:36,740 --> 00:03:40,020 që është, Implementimi aktuale funksion. 82 00:03:40,020 --> 00:03:42,470 Ky është një ilustrim i një shkencë kompjuterike rëndësishëm 83 00:03:42,470 --> 00:03:45,700 Parimi i quajtur fshehur informacionet, referuar edhe në 84 00:03:45,700 --> 00:03:48,960 herë si encapsulation. 85 00:03:48,960 --> 00:03:52,630 >> Si përdorues ose klient i një biblioteke, ju nuk keni nevojë për të 86 00:03:52,630 --> 00:03:54,230 dini rreth internals e bibliotekës në 87 00:03:54,230 --> 00:03:55,380 në mënyrë që të përdorin atë. 88 00:03:55,380 --> 00:03:57,800 Të ruaj të shohim printf vetëm pak më parë? 89 00:03:57,800 --> 00:04:00,275 Sikur keni parë ndonjëherë kodin aktual para? 90 00:04:00,275 --> 00:04:02,535 E pra, unë të supozojmë se ju nuk e keni, edhe pse ju mund të 91 00:04:02,535 --> 00:04:05,090 kanë përdorur printf ton të kohës. 92 00:04:05,090 --> 00:04:08,110 Të gjithë ju duhet të dini se ka qenë deklarata funksion të pranishëm 93 00:04:08,110 --> 00:04:10,940 në dosjen stdio.h header. 94 00:04:10,940 --> 00:04:14,010 Gjithsesi, përfitimi i fshehur informacionit mirë është se ju 95 00:04:14,010 --> 00:04:16,820 dhe programet që ju shkruani janë të izoluar nga çdo ndryshim në 96 00:04:16,820 --> 00:04:20,209 Kodi i zbatimit të funksioneve të bibliotekës. 97 00:04:20,209 --> 00:04:22,880 Nëse zbatimi i ndryshimeve printf, ju nuk keni 98 00:04:22,880 --> 00:04:26,310 për të shkuar dhe për të ndryshuar të gjitha programet tuaja që përdorin printf. 99 00:04:26,310 --> 00:04:28,450 >> Pra, ku nuk zbatimi shkoni? 100 00:04:28,450 --> 00:04:31,020 E pra, përsëri, nga Konventa, zbatimi shkon në një 101 00:04:31,020 --> 00:04:34,310 fotografi me extension. C file. 102 00:04:34,310 --> 00:04:36,820 Zakonisht, fotografi dhe fotografi header zbatimit të shkojnë dorë 103 00:04:36,820 --> 00:04:39,380 në dorë, kështu që nëse ju keni deklaruar një bandë e vargut të ri 104 00:04:39,380 --> 00:04:42,950 Funksionet në mystring.h, atëherë ju do të përcaktojë të gjitha 105 00:04:42,950 --> 00:04:46,960 ato funksione në mystring. c. 106 00:04:46,960 --> 00:04:49,230 Pra, atëherë fotografi header dhe zbatimi pastaj janë 107 00:04:49,230 --> 00:04:52,230 përpiluar, duke krijuar fotografi objekt që janë të lidhura më pas 108 00:04:52,230 --> 00:04:55,360 së bashku për të prodhuar file binar bibliotekës. 109 00:04:55,360 --> 00:04:58,520 Shkrimtari Biblioteka pastaj do të anijes file binar bashku 110 00:04:58,520 --> 00:05:00,720 me fotografi header për programuesit të cilët dëshirojnë të përdorin 111 00:05:00,720 --> 00:05:02,280 biblioteka. 112 00:05:02,280 --> 00:05:04,640 Në këtë pikë, të zbatimit. Fotografi c nuk janë 113 00:05:04,640 --> 00:05:07,840 nevojshme, me përjashtim të recompile bibliotekën nga e para, kështu që 114 00:05:07,840 --> 00:05:10,270 ata janë lënë shpesh jashtë. 115 00:05:10,270 --> 00:05:13,670 >> Për të përdorur bibliotekën C, ju duhet të bëni dy gjëra. 116 00:05:13,670 --> 00:05:16,890 Së pari, ju duhet të përfshijë # dosjet e Bibliotekës së header dhe 117 00:05:16,890 --> 00:05:18,700 Kodi source file ku ju dëshironi të përdorni 118 00:05:18,700 --> 00:05:20,530 Kodi i bibliotekës. 119 00:05:20,530 --> 00:05:23,200 Kjo informon përpiluesit e të gjitha deklaratave të 120 00:05:23,200 --> 00:05:26,890 funksionet, variablat, structs, e të tjera, të pranishëm në 121 00:05:26,890 --> 00:05:30,510 fotografi header në mënyrë që përpiluesit mund një, të siguroj që 122 00:05:30,510 --> 00:05:33,280 ju jeni duke përdorur burimet e bibliotekës në mënyrë të duhur, 123 00:05:33,280 --> 00:05:37,120 dhe dy, të gjenerojë kodin e duhur kuvendit. 124 00:05:37,120 --> 00:05:38,910 Varësisht nga ku dosjet e bibliotekës së header janë 125 00:05:38,910 --> 00:05:42,720 vendosur, sintaksa # include ndryshon. 126 00:05:42,720 --> 00:05:44,880 Nëse fotografi header janë të vendosura në sistemin e 127 00:05:44,880 --> 00:05:46,690 parazgjedhje përfshijnë Directory - 128 00:05:46,690 --> 00:05:48,780 zakonisht, usr/include-- 129 00:05:48,780 --> 00:05:52,200 atëherë kënd kllapa Sintaksa është përdorur, si në # përfshijnë 130 00:05:52,200 --> 00:05:53,450 . 131 00:05:57,440 --> 00:05:59,540 Megjithatë, nëse fotografi header janë të vendosura në të njëjtën 132 00:05:59,540 --> 00:06:02,960 Direktoria si kodin tuaj, sintaksa dyfishtë japin kuotën është 133 00:06:02,960 --> 00:06:04,870 përdorura, si në # include "mylib.h". 134 00:06:08,630 --> 00:06:11,220 >> Gjëja e dytë që ju duhet të bëni është që të lidhë në binar 135 00:06:11,220 --> 00:06:13,760 Biblioteka fotografi kur ju përpilojnë kodin tuaj. 136 00:06:13,760 --> 00:06:15,810 Ky është një hap i rëndësishëm super. 137 00:06:15,810 --> 00:06:17,540 Mbani mend diskutimin tonë të mëparshme në lidhje me mënyrën se si header 138 00:06:17,540 --> 00:06:20,200 Fotografi të mos përmbajnë kodin e zbatimit? 139 00:06:20,200 --> 00:06:22,200 Nëse ju harroni këtë hap, ju do të merrni gabime në lidhje me 140 00:06:22,200 --> 00:06:24,990 Simbolet e padefinuara të cekura në kodin tuaj. 141 00:06:24,990 --> 00:06:29,580 Për të zgjidhur këtë, përdorni-l flamurin e ndjekur menjëherë 142 00:06:29,580 --> 00:06:32,320 pa një hapësirë ​​me emrin e bibliotekës. 143 00:06:32,320 --> 00:06:35,410 Më shumë sisteme, duke përfshirë pajisje, Standardi C 144 00:06:35,410 --> 00:06:38,350 Bibliotekat janë të lidhura automatikisht për ju. 145 00:06:38,350 --> 00:06:41,700 Megjithatë, biblioteka matematikë është bundled ndonjëherë më vete 146 00:06:41,700 --> 00:06:44,600 dhe mund të duhet të jetë i lidhur me-LM. 147 00:06:44,600 --> 00:06:47,760 Në aplikim, ne të kujdeset për këtë për ju, dhe ne gjithashtu 148 00:06:47,760 --> 00:06:52,170 lidhë bibliotekën CS50 me-lcs50. 149 00:06:52,170 --> 00:06:54,540 Ju mund të shihni të gjithë këtë në aplikim kur ju drejtuar të bëni. 150 00:06:57,620 --> 00:06:59,130 >> Tani ju duhet të keni njohuri ju duhet të përdorni 151 00:06:59,130 --> 00:07:02,150 bibliotekat në C. Have fun eksploruar. 152 00:07:02,150 --> 00:07:05,880 Emri im është Nate Hardison, dhe kjo është CS50.