1 00:00:06,692 --> 00:00:09,470 [Powered by Google Translate] Nate HARDISON: programmeerimine, raamatukogu on kogumik 2 00:00:09,470 --> 00:00:11,380 seotud prewritten kood. 3 00:00:11,380 --> 00:00:14,350 Raamatukogud on, kuidas me, nagu programmeerijad, jagavad ühiseid ja 4 00:00:14,350 --> 00:00:16,930 kasulik kood üksteisega koos erinevate programmide me 5 00:00:16,930 --> 00:00:19,470 kirjutada, ja isegi erinevate protsesside töötab 6 00:00:19,470 --> 00:00:21,380 Samal ajal meie arvutid. 7 00:00:21,380 --> 00:00:23,000 >> Uurime natuke. 8 00:00:23,000 --> 00:00:25,070 Üks sagedamini funktsioone, olete ilmselt 9 00:00:25,070 --> 00:00:27,500 kasutanud on printf funktsiooni. 10 00:00:27,500 --> 00:00:29,820 Nüüd printf ei ole mingi maagiline funktsioon, mis on olnud 11 00:00:29,820 --> 00:00:31,670 püsiprogrammeeritud arvuti - 12 00:00:31,670 --> 00:00:34,320 pigem on see osa C Standard raamatukogud, mis on 13 00:00:34,320 --> 00:00:36,080 kogumik ülesandeid, mis on varustatud 14 00:00:36,080 --> 00:00:38,050 C programmeerimiskeelt. 15 00:00:38,050 --> 00:00:40,920 Kuna printf ei ole sisse ehitatud arvuti, mis tähendab, et 16 00:00:40,920 --> 00:00:43,520 seal oli programmeerija, kes tegelikult läks ja kirjutas 17 00:00:43,520 --> 00:00:46,310 printf funktsiooni ja komplekteeritud see ülejäänud standard 18 00:00:46,310 --> 00:00:48,880 raamatukogudes, nii et tulevikus programmeerijad ei pea 19 00:00:48,880 --> 00:00:50,310 eksemplaris pingutust. 20 00:00:50,310 --> 00:00:52,620 Ja me oleme kindlad tänulikud, et see on nii, sest vaadata 21 00:00:52,620 --> 00:00:54,710 kui palju koodi tegelikult kulub rakendada printf. 22 00:00:59,590 --> 00:01:02,860 >> C Standard Raamatukogud, millest printf on osa, on 23 00:01:02,860 --> 00:01:04,480 üks tähtsamaid vahendeid te 24 00:01:04,480 --> 00:01:06,770 on võitluses CS50. 25 00:01:06,770 --> 00:01:08,780 Lisaks sisend-väljund raamatukogu, kus 26 00:01:08,780 --> 00:01:11,370 printf elu on hunnik muid raamatuid, mida 27 00:01:11,370 --> 00:01:14,230 sa ilmselt kasutada jooksul CS50. 28 00:01:14,230 --> 00:01:16,730 Näiteks string raamatukogu on funktsioonid 29 00:01:16,730 --> 00:01:20,960 võrrelda C stringid, saada oma pikad ja concatenate neid. 30 00:01:20,960 --> 00:01:22,410 Ja matemaatika raamatukogu annab teile kasulik 31 00:01:22,410 --> 00:01:25,062 konstandid, nagu pi ja e. 32 00:01:25,062 --> 00:01:27,650 Nüüd, võrreldes standardse raamatukogud teiste programmide 33 00:01:27,650 --> 00:01:31,190 keeled, C Standard Raamatukogud on tõesti väike, 34 00:01:31,190 --> 00:01:34,060 kuid nad on veel suur hulk asju. 35 00:01:34,060 --> 00:01:36,370 Ja see ei tähenda, et Standard Raamatukogud on 36 00:01:36,370 --> 00:01:39,020 ainult C raamatukogudes, seal on palju rohkem seal 37 00:01:39,020 --> 00:01:42,460 maailm teid kasutada, sealhulgas CS50 Raamatukogu, 38 00:01:42,460 --> 00:01:45,150 kartograafia raamatukogude kodeerimiseks ja dekodeerimiseks 39 00:01:45,150 --> 00:01:48,000 funktsioone, raamatukogude funktsioonid kodeerida ja 40 00:01:48,000 --> 00:01:50,970 taasesitada video, ja nii edasi. 41 00:01:50,970 --> 00:01:53,190 >> See viib meid oluline kõrvale. 42 00:01:53,190 --> 00:01:55,500 Üks olulisi oskusi insener on teada 43 00:01:55,500 --> 00:01:58,090 vahendeid oma tööriistakasti nii, et saate kasutada 44 00:01:58,090 --> 00:01:59,850 neile ja vältida jalgratta leiutamist kui 45 00:01:59,850 --> 00:02:01,510 sa pead seda tegema. 46 00:02:01,510 --> 00:02:04,120 Kuna programmeerijad, raamatukogud on üks tähtsamaid 47 00:02:04,120 --> 00:02:05,520 tööriistad oleme. 48 00:02:05,520 --> 00:02:08,520 Kui sa leiad end silmitsi ülesandega, mis tundub tüütu või 49 00:02:08,520 --> 00:02:11,940 igapäevaseks, nagu leida pikkus C string, siis 50 00:02:11,940 --> 00:02:14,020 peaks endalt küsima, kui see võib olla nii, et 51 00:02:14,020 --> 00:02:16,520 keegi juba teinud sama asja enne. 52 00:02:16,520 --> 00:02:17,760 Võimalik, et sa leiaksid mõne 53 00:02:17,760 --> 00:02:20,110 aitab jooksul raamatukogu. 54 00:02:20,110 --> 00:02:23,260 >> Nii tehnilises mõttes, raamatukogu binaarfaili et 55 00:02:23,260 --> 00:02:26,210 on koostanud ühendab kogumine 56 00:02:26,210 --> 00:02:28,880 objekti faili kasutades tööriista nimega, siis 57 00:02:28,880 --> 00:02:31,010 arvasid, linker. 58 00:02:31,010 --> 00:02:33,830 Objekti failid on need. O faile, mis sa saad, kui sa 59 00:02:33,830 --> 00:02:35,860 koostama C lähtekoodi. 60 00:02:35,860 --> 00:02:38,420 Kui programmeerijad kirjutavad raamatukogud, nad tavaliselt 61 00:02:38,420 --> 00:02:41,560 eristama oma C-koodi kahte tüüpi faile: 62 00:02:41,560 --> 00:02:44,880 päisefaile ja rakendamise faile. 63 00:02:44,880 --> 00:02:49,820 Päisefail kokkuleppeliselt antakse. H faililaiend, 64 00:02:49,820 --> 00:02:51,940 ja see sisaldab koodi, mis kinnitab raamatukogu 65 00:02:51,940 --> 00:02:55,120 ressursse, mis on olemas, kus saab kasutada. 66 00:02:55,120 --> 00:02:58,830 Kõnealused vahendid hõlmavad ülesandeid, muutujad, structs, 67 00:02:58,830 --> 00:03:01,980 definitsioone, ja nii edasi, ja koos nad on 68 00:03:01,980 --> 00:03:04,620 tavaliselt nimetatakse liides. 69 00:03:04,620 --> 00:03:07,280 Tegelikult, kui sa kunagi ei tea, mida on raamatukogus, 70 00:03:07,280 --> 00:03:09,580 päisefaile on koht, kust otsida. 71 00:03:09,580 --> 00:03:14,030 >> Näiteks saate tõmba usr / include / stdio.h ja kontrollida 72 00:03:14,030 --> 00:03:16,210 kõike sa kunagi tahtnud teada 73 00:03:16,210 --> 00:03:18,570 standard IO raamatukogu. 74 00:03:18,570 --> 00:03:20,610 Seal on palju asju siin, ja see võib võtta natuke 75 00:03:20,610 --> 00:03:22,420 aeg Wade kaudu. 76 00:03:22,420 --> 00:03:25,840 Kuid koos Google ja manpages, see on 77 00:03:25,840 --> 00:03:28,060 koht, kuhu minna, kui sa ei tea, kuidas standard I / O 78 00:03:28,060 --> 00:03:30,460 raamatukogu funktsioonid töötavad. 79 00:03:30,460 --> 00:03:33,910 Nii et üks võti on tähele panna siin, kuigi see, et päisefaile 80 00:03:33,910 --> 00:03:36,740 tavaliselt ei hõlma funktsiooni mõisted - 81 00:03:36,740 --> 00:03:40,020 see tähendab, et tegelik funktsioon rakendusi. 82 00:03:40,020 --> 00:03:42,470 See on näide oluline infotehnoloogia 83 00:03:42,470 --> 00:03:45,700 põhimõtet nimetatakse tiedonpiilotus, millele on viidatud ka 84 00:03:45,700 --> 00:03:48,960 korda kapseldus. 85 00:03:48,960 --> 00:03:52,630 >> Nagu kasutaja või kliendi raamatukogu, sa ei pea 86 00:03:52,630 --> 00:03:54,230 teadma selle sisemust raamatukogu 87 00:03:54,230 --> 00:03:55,380 Selleks, et seda kasutada. 88 00:03:55,380 --> 00:03:57,800 Nägin printf lihtsalt natuke tagasi? 89 00:03:57,800 --> 00:04:00,275 Oleks sa kunagi näinud tegelikku koodi enne? 90 00:04:00,275 --> 00:04:02,535 Noh, ma eeldan, et sa ei ole, isegi kui te 91 00:04:02,535 --> 00:04:05,090 on kasutanud printf tonni korda. 92 00:04:05,090 --> 00:04:08,110 Kõik, mida pidin teada oli funktsiooni deklaratsioon kohal 93 00:04:08,110 --> 00:04:10,940 aastal stdio.h header fail. 94 00:04:10,940 --> 00:04:14,010 Igatahes, kasuks hea info peidus on, et te 95 00:04:14,010 --> 00:04:16,820 ja programme sa kirjutad on kaitstud mis tahes muudatusi 96 00:04:16,820 --> 00:04:20,209 kood rakendamise raamatukogu funktsioonid. 97 00:04:20,209 --> 00:04:22,880 Kui rakendamise printf muudatusi, ei pea te 98 00:04:22,880 --> 00:04:26,310 minna ja muuta kõik oma programmid, mis kasutavad printf. 99 00:04:26,310 --> 00:04:28,450 >> Nii et kui ei rakendamiseks minna? 100 00:04:28,450 --> 00:04:31,020 Noh, jälle tavapäraselt rakendamise läheb 101 00:04:31,020 --> 00:04:34,310 faili. c faililaiend. 102 00:04:34,310 --> 00:04:36,820 Tavaliselt päisefaile ja rakendamise faili käima 103 00:04:36,820 --> 00:04:39,380 käes, nii et kui sul deklareeritud hunnik uusi string 104 00:04:39,380 --> 00:04:42,950 funktsioonide mystring.h, siis saate määratleda kõik 105 00:04:42,950 --> 00:04:46,960 need funktsioonid mystring. c. 106 00:04:46,960 --> 00:04:49,230 Nii siis päise ja rakendamise failid on seejärel 107 00:04:49,230 --> 00:04:52,230 koostatud, luues objekti faile, mis on siis seotud 108 00:04:52,230 --> 00:04:55,360 kokku toota binaarne raamatukogu faili. 109 00:04:55,360 --> 00:04:58,520 Raamatukogu kirjanik siis laeva binaarfaili mööda 110 00:04:58,520 --> 00:05:00,720 koos päisefaile programmeerijad, kes soovivad kasutada 111 00:05:00,720 --> 00:05:02,280 raamatukogu. 112 00:05:02,280 --> 00:05:04,640 Sel hetkel,. C rakendamise failid ei ole 113 00:05:04,640 --> 00:05:07,840 vaja, välja arvatud kompileeri raamatukogu nullist, nii 114 00:05:07,840 --> 00:05:10,270 nad sageli välja jäetud. 115 00:05:10,270 --> 00:05:13,670 >> Et kasutada C raamatukogu, mida sa pead tegema kahte asja. 116 00:05:13,670 --> 00:05:16,890 Esmalt tuleb # include raamatukogu päisefaile ja 117 00:05:16,890 --> 00:05:18,700 lähtekoodi fail, kus soovite kasutada 118 00:05:18,700 --> 00:05:20,530 raamatukogu kood. 119 00:05:20,530 --> 00:05:23,200 See teavitab koostaja kõik deklaratsioonid 120 00:05:23,200 --> 00:05:26,890 funktsioone, muutujad, structs lt jne olemas 121 00:05:26,890 --> 00:05:30,510 päisefaile nii et tõlkija saab üks, kindlustada, et 122 00:05:30,510 --> 00:05:33,280 sa kasutad raamatukogu ressursside õige, 123 00:05:33,280 --> 00:05:37,120 ja kaks, luua asjakohane koost koodi. 124 00:05:37,120 --> 00:05:38,910 Sõltuvalt sellest, kus raamatukogu päisefaile on 125 00:05:38,910 --> 00:05:42,720 asub, # include süntaks on erinev. 126 00:05:42,720 --> 00:05:44,880 Kui päisefaile asuvad süsteemi 127 00:05:44,880 --> 00:05:46,690 Vaikimisi sisaldab kataloog - 128 00:05:46,690 --> 00:05:48,780 Tavaliselt usr/include-- 129 00:05:48,780 --> 00:05:52,200 siis noolsulgudes süntaks on kasutatud, nagu # include 130 00:05:52,200 --> 00:05:53,450 . 131 00:05:57,440 --> 00:05:59,540 Kui header failid asuvad samas 132 00:05:59,540 --> 00:06:02,960 kataloogi oma koodi, jutumärke süntaks on 133 00:06:02,960 --> 00:06:04,870 kasutatud, nagu # include "mylib.h". 134 00:06:08,630 --> 00:06:11,220 >> Teine asi, mida sa pead tegema on ühendada ka kahekomponentsete 135 00:06:11,220 --> 00:06:13,760 teegi faili, kui sa kompileerida koodi. 136 00:06:13,760 --> 00:06:15,810 See on super oluline samm. 137 00:06:15,810 --> 00:06:17,540 Mäletad meie varasem arutelu, kuidas header 138 00:06:17,540 --> 00:06:20,200 failid ei sisalda rakendamise koodeksit? 139 00:06:20,200 --> 00:06:22,200 Kui te unustate seda sammu, saad vigu umbes 140 00:06:22,200 --> 00:06:24,990 defineerimata sümbolite viidatud oma koodi. 141 00:06:24,990 --> 00:06:29,580 Et seda lahendada, kasutage-l lipu järgneb kohe 142 00:06:29,580 --> 00:06:32,320 ilma tühiku nime raamatukogu. 143 00:06:32,320 --> 00:06:35,410 Paljudes süsteemides, kaasa arvatud seadme, C Standard 144 00:06:35,410 --> 00:06:38,350 Raamatukogud on automaatselt seotud sinu jaoks. 145 00:06:38,350 --> 00:06:41,700 Kuid matemaatika raamatukogu on mõnikord komplekteeritud eraldi 146 00:06:41,700 --> 00:06:44,600 ja võib tekkida vajadus siduda-lm. 147 00:06:44,600 --> 00:06:47,760 Seadmele, me hoolitseme sinu eest, ja me ka 148 00:06:47,760 --> 00:06:52,170 siduda CS50 raamatukogu-lcs50. 149 00:06:52,170 --> 00:06:54,540 Näete kõik see seade sisse, kui sa jooksed teha. 150 00:06:57,620 --> 00:06:59,130 >> Nüüd peaks sul olema teadmisi, mida on vaja kasutada 151 00:06:59,130 --> 00:07:02,150 raamatukogude C. Avastamisrõõmu. 152 00:07:02,150 --> 00:07:05,880 Minu nimi on Nate Hardison, ja see on CS50.