1 00:00:06,692 --> 00:00:09,470 [Powered by Google Translate] NATE HARDISON: Ym maes rhaglennu, llyfrgell yn gasgliad o 2 00:00:09,470 --> 00:00:11,380 cod prewritten cysylltiedig. 3 00:00:11,380 --> 00:00:14,350 Mae llyfrgelloedd yn sut yr ydym ni, fel rhaglenwyr, rhannu cyffredin a 4 00:00:14,350 --> 00:00:16,930 cod defnyddiol â'i gilydd, gyda rhaglenni gwahanol rydym yn 5 00:00:16,930 --> 00:00:19,470 ysgrifennu, a hyd yn oed gyda gwahanol brosesau yn rhedeg ar 6 00:00:19,470 --> 00:00:21,380 yr un pryd ar ein cyfrifiaduron. 7 00:00:21,380 --> 00:00:23,000 >> Dewch i ddarganfod ychydig. 8 00:00:23,000 --> 00:00:25,070 Un o swyddogaethau mwyaf cyffredin eich bod yn ôl pob tebyg i wedi 9 00:00:25,070 --> 00:00:27,500 bod yn ei ddefnyddio yw'r swyddogaeth printf. 10 00:00:27,500 --> 00:00:29,820 Nawr, nid printf yn rhyw swyddogaeth hud sydd wedi bod yn 11 00:00:29,820 --> 00:00:31,670 caled-godio i mewn i'r cyfrifiadur - 12 00:00:31,670 --> 00:00:34,320 yn hytrach, mae'n rhan o Lyfrgelloedd Safon C, sy'n 13 00:00:34,320 --> 00:00:36,080 casgliad o swyddogaethau sy'n dod gyda'r 14 00:00:36,080 --> 00:00:38,050 Iaith rhaglennu C. 15 00:00:38,050 --> 00:00:40,920 Gan nad printf yn cael ei hadeiladu i mewn i'r cyfrifiadur, mae hynny'n golygu bod 16 00:00:40,920 --> 00:00:43,520 roedd rhywfaint o rhaglennydd sydd mewn gwirionedd yn mynd i mewn a ysgrifennodd y 17 00:00:43,520 --> 00:00:46,310 swyddogaeth printf a bwndelu gyda gweddill y safon 18 00:00:46,310 --> 00:00:48,880 llyfrgelloedd fel na fyddai rhaglenwyr y dyfodol rhaid i 19 00:00:48,880 --> 00:00:50,310 dyblygu ymdrech. 20 00:00:50,310 --> 00:00:52,620 Ac rydym yn sicr ddiolchgar bod hynny'n wir, oherwydd gwirio 21 00:00:52,620 --> 00:00:54,710 faint cod mewn gwirionedd mae'n cymryd i weithredu printf. 22 00:00:59,590 --> 00:01:02,860 >> Mae'r Llyfrgelloedd C Standard, y printf yn rhan ohoni, yn 23 00:01:02,860 --> 00:01:04,480 un o'r arfau mwyaf pwysig i chi 24 00:01:04,480 --> 00:01:06,770 wedi mynd i'r afael CS50. 25 00:01:06,770 --> 00:01:08,780 Yn ogystal â'r llyfrgell mewnbwn-allbwn lle 26 00:01:08,780 --> 00:01:11,370 printf bywydau, mae yna griw o lyfrgelloedd eraill 27 00:01:11,370 --> 00:01:14,230 mae'n debyg y byddwch yn defnyddio dros gyfnod o CS50. 28 00:01:14,230 --> 00:01:16,730 Er enghraifft, y llyfrgell llinyn swyddogaethau i 29 00:01:16,730 --> 00:01:20,960 cymharu llinynnau C, yn cael eu hyd, ac yn concatenate nhw. 30 00:01:20,960 --> 00:01:22,410 Ac mae'r llyfrgell mathemateg yn rhoi ddefnyddiol 31 00:01:22,410 --> 00:01:25,062 cysonion, fel pi ac e. 32 00:01:25,062 --> 00:01:27,650 Yn awr, o gymharu â'r llyfrgelloedd safonol o raglenni eraill 33 00:01:27,650 --> 00:01:31,190 ieithoedd, y Llyfrgelloedd Safon C yn wirioneddol fach, 34 00:01:31,190 --> 00:01:34,060 ond maent yn dal i gael cryn dipyn o bethau. 35 00:01:34,060 --> 00:01:36,370 Ac nid dyna'r i ddweud bod y Llyfrgelloedd safonol yn y 36 00:01:36,370 --> 00:01:39,020 dim ond C llyfrgelloedd; mae llawer mwy allan yna yn y 37 00:01:39,020 --> 00:01:42,460 byd i chi eu defnyddio, gan gynnwys y Llyfrgell CS50, 38 00:01:42,460 --> 00:01:45,150 llyfrgelloedd cartograffeg gyda amgryptio a dadgriptio 39 00:01:45,150 --> 00:01:48,000 swyddogaethau, llyfrgelloedd gyda swyddogaethau i amgodio a 40 00:01:48,000 --> 00:01:50,970 chwarae yn ôl fideo, ac yn y blaen. 41 00:01:50,970 --> 00:01:53,190 >> Mae hyn yn dod â ni i fynd heibio bwysig. 42 00:01:53,190 --> 00:01:55,500 Un o sgiliau hanfodol peirianneg yn gwybod y 43 00:01:55,500 --> 00:01:58,090 offer sydd ar gael yn eich blwch offer er mwyn i chi eu defnyddio 44 00:01:58,090 --> 00:01:59,850 iddynt ac osgoi ail-ddyfeisio'r olwyn oni bai 45 00:01:59,850 --> 00:02:01,510 rhaid i chi wneud hynny. 46 00:02:01,510 --> 00:02:04,120 Fel rhaglenwyr, mae llyfrgelloedd yn un o'r mwyaf pwysig 47 00:02:04,120 --> 00:02:05,520 offer sydd gennym. 48 00:02:05,520 --> 00:02:08,520 Pan fyddwch yn cael eich hun yn wynebu tasg sy'n ymddangos yn ddiflas neu 49 00:02:08,520 --> 00:02:11,940 cyffredin, fel dod o hyd i'r hyd llinyn C, i chi 50 00:02:11,940 --> 00:02:14,020 Dylai ofyn i chi'ch hun os gallai fod yn wir bod 51 00:02:14,020 --> 00:02:16,520 rhywun wedi gwneud yn barod yr un peth o'r blaen. 52 00:02:16,520 --> 00:02:17,760 Cyfleoedd yn y gallech ddod o hyd i 53 00:02:17,760 --> 00:02:20,110 helpu mewn llyfrgell. 54 00:02:20,110 --> 00:02:23,260 >> Felly, yn nhermau technegol, llyfrgell yn ffeil ddeuaidd sy'n 55 00:02:23,260 --> 00:02:26,210 wedi cael ei gynhyrchu trwy gysylltu casgliad o 56 00:02:26,210 --> 00:02:28,880 a elwir yn ffeiliau gwrthrych gan ddefnyddio offeryn, rydych 57 00:02:28,880 --> 00:02:31,010 guessed, y linker. 58 00:02:31,010 --> 00:02:33,830 Ffeiliau Gwrthrych yw'r rhai. Ffeiliau o eich bod yn cael pan fyddwch yn 59 00:02:33,830 --> 00:02:35,860 llunio cod ffynhonnell C. 60 00:02:35,860 --> 00:02:38,420 Pan rhaglenwyr ysgrifennu llyfrgelloedd, maent fel arfer yn 61 00:02:38,420 --> 00:02:41,560 gwahanu eu C cod yn ddau fath o ffeiliau: 62 00:02:41,560 --> 00:02:44,880 ffeiliau a ffeiliau pennawd gweithredu. 63 00:02:44,880 --> 00:02:49,820 Mae ffeil pennawd gan confensiwn yn cael y. Estyniad ffeil h, 64 00:02:49,820 --> 00:02:51,940 ac mae'n cynnwys cod sy'n datgan y llyfrgell 65 00:02:51,940 --> 00:02:55,120 adnoddau sydd ar gael i chi eu defnyddio. 66 00:02:55,120 --> 00:02:58,830 Mae'r adnoddau hyn yn cynnwys swyddogaethau, newidynnau, structs, 67 00:02:58,830 --> 00:03:01,980 diffiniadau math, ac yn y blaen, a chyda'i gilydd, maent yn 68 00:03:01,980 --> 00:03:04,620 cyfeirir atynt yn gyffredin fel y rhyngwyneb. 69 00:03:04,620 --> 00:03:07,280 Yn wir, os ydych chi'n meddwl erioed beth sydd mewn llyfrgell, 70 00:03:07,280 --> 00:03:09,580 y ffeiliau pennawd yw'r lle i chwilio. 71 00:03:09,580 --> 00:03:14,030 >> Er enghraifft, gallwch dynnu i fyny usr / cynnwys / stdio.h a gwirio 72 00:03:14,030 --> 00:03:16,210 wybod popeth chi erioed wedi eisiau ei wybod am 73 00:03:16,210 --> 00:03:18,570 llyfrgell io safonol. 74 00:03:18,570 --> 00:03:20,610 Mae 'na lot o bethau yn y fan hon, a gall gymryd tipyn o 75 00:03:20,610 --> 00:03:22,420 amser i ymlafnio drwy'r. 76 00:03:22,420 --> 00:03:25,840 Fodd bynnag, ynghyd â Google a'r tudalennau 'man', dyma'r 77 00:03:25,840 --> 00:03:28,060 lle i fynd os ydych yn meddwl sut y safon I / O 78 00:03:28,060 --> 00:03:30,460 swyddogaethau llyfrgell yn gweithio. 79 00:03:30,460 --> 00:03:33,910 Felly, un peth allweddol i'w nodi yma, fodd bynnag, yw y gall ffeiliau pennawd 80 00:03:33,910 --> 00:03:36,740 nad ydynt fel arfer yn cynnwys diffiniadau swyddogaeth - 81 00:03:36,740 --> 00:03:40,020 hynny yw, y implementations swyddogaeth ei hun. 82 00:03:40,020 --> 00:03:42,470 Mae hyn yn enghraifft o wyddoniaeth gyfrifiadurol pwysig 83 00:03:42,470 --> 00:03:45,700 egwyddor a elwir yn cuddio gwybodaeth, y cyfeirir atynt hefyd yn 84 00:03:45,700 --> 00:03:48,960 gwaith cymaint o amgįu. 85 00:03:48,960 --> 00:03:52,630 >> Gan fod y defnyddiwr neu gleient o lyfrgell, nid oes angen i chi 86 00:03:52,630 --> 00:03:54,230 gwybod am y mewnolion y llyfrgell yn 87 00:03:54,230 --> 00:03:55,380 er mwyn ei ddefnyddio. 88 00:03:55,380 --> 00:03:57,800 Cofiwch gweld printf dim ond ychydig yn ôl? 89 00:03:57,800 --> 00:04:00,275 Pe chi erioed wedi gweld y cod ei hun o'r blaen? 90 00:04:00,275 --> 00:04:02,535 Wel, yr wyf yn cymryd nad ydych wedi, hyd yn oed er eich gallai 91 00:04:02,535 --> 00:04:05,090 wedi defnyddio tunnell printf o weithiau. 92 00:04:05,090 --> 00:04:08,110 Y cyfan sydd rhaid i wybod yr oedd y swyddogaeth bresennol datganiad 93 00:04:08,110 --> 00:04:10,940 yn y ffeil pennawd stdio.h. 94 00:04:10,940 --> 00:04:14,010 Anyway, y fantais o cuddio gwybodaeth dda yw eich bod yn 95 00:04:14,010 --> 00:04:16,820 a'r rhaglenni ydych yn ysgrifennu eu hinswleiddio o unrhyw newidiadau yn 96 00:04:16,820 --> 00:04:20,209 y cod y gweithredu swyddogaethau llyfrgell. 97 00:04:20,209 --> 00:04:22,880 Os yw'r gweithredu newidiadau printf, nid oes gennych 98 00:04:22,880 --> 00:04:26,310 i fynd a newid eich holl raglenni sy'n defnyddio printf. 99 00:04:26,310 --> 00:04:28,450 >> Felly, lle mae gweithredu'n mynd? 100 00:04:28,450 --> 00:04:31,020 Wel, unwaith eto, yn ôl confensiwn, mae gweithredu yn mynd yn 101 00:04:31,020 --> 00:04:34,310 ffeil efo'r estyniad. estyniad ffeil c. 102 00:04:34,310 --> 00:04:36,820 Fel arfer, ffeiliau pennawd a ffeiliau gweithredu yn mynd law 103 00:04:36,820 --> 00:04:39,380 mewn llaw, felly os ydych chi wedi datgan criw o linyn newydd 104 00:04:39,380 --> 00:04:42,950 swyddogaethau yn mystring.h, yna byddwch chi'n diffinio pob un o'r 105 00:04:42,950 --> 00:04:46,960 swyddogaethau hynny yn mystring. c. 106 00:04:46,960 --> 00:04:49,230 Felly, yna y ffeiliau pennawd a gweithredu wedyn 107 00:04:49,230 --> 00:04:52,230 llunio, creu ffeiliau gwrthrych sydd wedi eu cysylltu wedyn yn 108 00:04:52,230 --> 00:04:55,360 gyda'i gilydd i gynhyrchu'r ddeuaidd ffeil llyfrgell. 109 00:04:55,360 --> 00:04:58,520 Bydd yr awdur llyfrgell wedyn yn llong y ffeil ddeuaidd ar hyd 110 00:04:58,520 --> 00:05:00,720 gyda'r ffeiliau pennawd i raglennwyr sydd am ddefnyddio 111 00:05:00,720 --> 00:05:02,280 y llyfrgell. 112 00:05:02,280 --> 00:05:04,640 Ar y pwynt hwn, nid y. Ffeiliau gweithredu c yn 113 00:05:04,640 --> 00:05:07,840 sydd eu hangen, ac eithrio i ail-grynhoi y llyfrgell o'r dechrau, felly 114 00:05:07,840 --> 00:05:10,270 maent yn gadael yn aml allan. 115 00:05:10,270 --> 00:05:13,670 >> I ddefnyddio'r llyfrgell C, rhaid i chi wneud dau beth. 116 00:05:13,670 --> 00:05:16,890 Yn gyntaf, mae'n rhaid i chi # gynnwys ffeiliau pennawd y llyfrgell a'r 117 00:05:16,890 --> 00:05:18,700 ffeil cod ffynhonnell lle rydych am ei ddefnyddio 118 00:05:18,700 --> 00:05:20,530 cod y llyfrgell. 119 00:05:20,530 --> 00:05:23,200 Mae hyn yn llywio y compiler pob un o'r datganiadau o 120 00:05:23,200 --> 00:05:26,890 swyddogaethau, newidynnau, structs, et cetera, yn bresennol yn y 121 00:05:26,890 --> 00:05:30,510 ffeiliau pennawd fel y gall y compiler un, yswirio bod 122 00:05:30,510 --> 00:05:33,280 eich bod yn defnyddio adnoddau'r llyfrgell yn y ffordd briodol, 123 00:05:33,280 --> 00:05:37,120 a dau, yn cynhyrchu y cod cynulliad priodol. 124 00:05:37,120 --> 00:05:38,910 Yn dibynnu ar ble ffeiliau pennawd y llyfrgell yn 125 00:05:38,910 --> 00:05:42,720 lleoli, y gystrawen # cynnwys yn amrywio. 126 00:05:42,720 --> 00:05:44,880 Os yw'r ffeil pennawd yn cael eu lleoli yn y system 127 00:05:44,880 --> 00:05:46,690 diofyn yn cynnwys cyfeiriadur - 128 00:05:46,690 --> 00:05:48,780 fel arfer, usr/include-- 129 00:05:48,780 --> 00:05:52,200 yna bydd y gystrawen cromfachau ongl yn cael ei ddefnyddio, fel yn # cynnwys 130 00:05:52,200 --> 00:05:53,450 . 131 00:05:57,440 --> 00:05:59,540 Fodd bynnag, os bydd y ffeiliau pennawd wedi eu lleoli yn yr un 132 00:05:59,540 --> 00:06:02,960 cyfeirlyfr fel eich cod eich hun, y gystrawen dyfyniad dwbl yn 133 00:06:02,960 --> 00:06:04,870 defnyddio, fel yn # cynnwys "mylib.h". 134 00:06:08,630 --> 00:06:11,220 >> Yr ail beth rhaid i chi ei wneud yw cysylltu yn y deuaidd 135 00:06:11,220 --> 00:06:13,760 llyfrgell ffeil pan fyddwch yn llunio eich cod. 136 00:06:13,760 --> 00:06:15,810 Mae hwn yn gam pwysig super. 137 00:06:15,810 --> 00:06:17,540 Cofiwch ein trafodaeth gynharach am sut y pennawd 138 00:06:17,540 --> 00:06:20,200 Nid yw ffeiliau yn cynnwys cod gweithredu? 139 00:06:20,200 --> 00:06:22,200 Os byddwch yn anghofio y cam hwn, byddwch yn cael gwallau am 140 00:06:22,200 --> 00:06:24,990 symbolau heb eu diffinio cyfeirir atynt yn eich cod. 141 00:06:24,990 --> 00:06:29,580 Er mwyn datrys hyn, defnyddiwch y-l faner ddilyn yn syth 142 00:06:29,580 --> 00:06:32,320 heb le o'r enw y llyfrgell. 143 00:06:32,320 --> 00:06:35,410 Ar lawer o systemau, gan gynnwys yr offer, y Safon C 144 00:06:35,410 --> 00:06:38,350 Llyfrgelloedd yn cael eu cysylltu yn awtomatig i chi. 145 00:06:38,350 --> 00:06:41,700 Fodd bynnag, mae'r llyfrgell yn cael ei bwndelu math weithiau ar wahân 146 00:06:41,700 --> 00:06:44,600 ac efallai y bydd angen i fod yn gysylltiedig â-lm. 147 00:06:44,600 --> 00:06:47,760 Ar y peiriant, rydym yn gofalu am hyn i chi, ac rydym hefyd yn 148 00:06:47,760 --> 00:06:52,170 cysylltu'r llyfrgell CS50 â-lcs50. 149 00:06:52,170 --> 00:06:54,540 Gallwch weld hyn i gyd ar y peiriant pan fyddwch yn rhedeg ei wneud. 150 00:06:57,620 --> 00:06:59,130 >> Nawr dylech gael y wybodaeth mae angen i chi ddefnyddio 151 00:06:59,130 --> 00:07:02,150 llyfrgelloedd yng C. Cael hwyl archwilio. 152 00:07:02,150 --> 00:07:05,880 Fy enw i yw Nate Hardison, ac mae hyn yn CS50.