[Powered by Google Translate] Nate HARDISON: Katika programu, maktaba ni mkusanyiko wa kuhusiana prewritten code. Maktaba ni jinsi gani sisi, kama programmers, sehemu ya kawaida na manufaa ya kificho na kila mmoja, na programu mbalimbali sisi kuandika, na hata pamoja na michakato mbalimbali katika mbio huo huo kwenye kompyuta yetu. Hebu tuchunguze kidogo. Moja ya kazi zaidi ya kawaida kwamba wameweza pengine wamekuwa wakitumia ni kazi printf. Sasa, printf si baadhi ya kazi uchawi kwamba imekuwa ngumu-coded ndani ya kompyuta - bali, ni sehemu ya C Maktaba darasa, ambayo ni ukusanyaji ya kazi ya kwamba kuja na C programu lugha. Tangu printf si kujengwa ndani ya kompyuta, hiyo ina maana kwamba kulikuwa na baadhi ya programu ambaye kweli alikwenda katika na aliandika printf kazi na kutunza kwa mapumziko ya kiwango maktaba ili programmers baadaye bila kuwa na duplicate juhudi. Na sisi ni uhakika kushukuru kwamba hiyo kesi, kwa sababu angalia nje kwa kiasi gani kanuni ni kweli inachukua kutekeleza printf. C darasa la Maktaba, ambayo ni sehemu printf, ni moja ya zana muhimu zaidi kuwa katika kupambana na CS50. Mbali na maktaba pembejeo-mazao ambapo maisha printf, kuna rundo la maktaba nyingine kwamba pengine utasikia kutumia zaidi ya mwendo wa CS50. Kwa mfano, maktaba string ina kazi kwa kulinganisha masharti C, kupata urefu wao, na concatenate yao. Na maktaba math anakupa msaada constants, kama pi na e. Sasa, ikilinganishwa na kiwango maktaba ya programu nyingine lugha, C darasa la Maktaba ni kweli ndogo, lakini bado wana kiasi kikubwa cha mambo ya ajabu. Na kwamba si kusema kwamba Maktaba darasa ni tu C maktaba; kuna wengi zaidi huko nje katika dunia kwa wewe kutumia, ikiwemo Maktaba CS50, masomo ya kutengeneza ramani maktaba kwa usimbaji na decryption kazi, maktaba na kazi kwa encode na kucheza nyuma video, na kadhalika. Hii inatuleta kwenye kando muhimu. Moja ya ujuzi muhimu wa uhandisi ni kujua zana inapatikana katika Vifaa yako ili uweze kutumia yao na kuepuka reinventing gurudumu isipokuwa una kufanya hivyo. Kama programmers, maktaba ni mmoja wa muhimu zana tuna. Wakati wewe mwenyewe kupata yanayowakabili kazi ambayo inaonekana tedious au kawaida, kama vile kupata urefu wa kamba C, wewe unapaswa kujiuliza kama inaweza kuwa kesi hiyo mtu Tayari amefanya kitu kimoja kabla. Nafasi ni kwamba unaweza kupata baadhi ya kusaidia ndani ya maktaba. Hivyo katika suala kiufundi, maktaba ni faili binary kwamba imekuwa zinazozalishwa kwa kuunganisha pamoja ukusanyaji wa kitu files kutumia chombo aitwaye, wewe guessed it, linker. Object files ni wale o files. Kwamba kupata wakati kukusanya C chanzo code. Wakati programmers kuandika maktaba, wao kawaida kutenganisha yao C code katika aina mbili za files: header files na files utekelezaji. faili header na mkataba ni kutolewa h. faili ugani, na ina kificho kwamba anatangaza wa maktaba rasilimali ambayo inapatikana kwa wewe kutumia. Hizi ni pamoja na rasilimali kazi vigezo, structs, aina ya ufafanuzi, na kadhalika, na kwa pamoja, wao ni inajulikana kama interface. Kwa kweli, kama wewe ni milele wanashangaa nini katika maktaba, files header ni mahali pa kuangalia. Kwa mfano, unaweza kuvuta up Usr / pamoja / stdio.h na kuangalia nje kila kitu umewahi alitaka kujua kuhusu kiwango io maktaba. Kuna mengi ya mambo katika hapa, na inaweza kuchukua kidogo ya muda wa Wade kupitia. Hata hivyo, pamoja na Google na manpages, hii ni mahali ya kwenda kama wewe wanashangaa jinsi kiwango I / O maktaba utendaji kazi. Hivyo moja muhimu kitu kukumbuka hapa, ingawa, ni kwamba header files kawaida hawana pamoja ufafanuzi kazi - kwamba ni, halisi kazi ya utekelezaji. Hii ni kielelezo cha sayansi muhimu kompyuta kanuni iitwayo habari kujificha, pia inajulikana katika mara kama encapsulation. Kama mtumiaji au mteja wa maktaba, huna haja ya kujua kuhusu internals ya maktaba katika ili kuitumia. Kumbuka kuona printf kidogo tu iliyopita? Na lau wewe milele kuonekana code halisi kabla? Naam, mimi kudhani kuwa wewe si, hata kama wewe ili wametumia tani printf ya nyakati. Wote walikuwa na kujua alikuwa tamko kazi sasa katika faili stdio.h header. Anyway, faida ya mafichoni taarifa nzuri ni kwamba na mipango ya kuandika ni maboksi kutoka mabadiliko yoyote katika kanuni za utekelezaji wa majukumu ya maktaba. Kama utekelezaji wa mabadiliko printf, huna kwenda na mabadiliko yote ya mipango yako ya kwamba matumizi ya printf. Hivyo ambapo gani utekelezaji kwenda? Naam, tena, kwa mkataba huo, utekelezaji unaendelea katika faili na ugani c. faili. Kawaida, header files na files utekelezaji kwenda mkono kwa mkono, hivyo kama wewe ve alitangaza rundo la string mpya kazi katika mystring.h, basi utasikia define yote ya wale kazi katika mystring c.. Hivyo basi files header na utekelezaji ni basi compiled, kujenga files kitu, kisha wanaohusishwa pamoja ili kuzalisha maktaba binary file. mwandishi maktaba kisha meli faili binary pamoja kwa files header kwa programmers ambao wanataka kutumia maktaba. Katika hatua hii, c. Utekelezaji files si inahitajika, ila kwa recompile maktaba kutoka mwanzo, hivyo wao ni mara nyingi huachwa nje. Kutumia maktaba C, una kufanya mambo mawili. Kwanza, lazima # ni pamoja na header files maktaba na chanzo code faili ambapo unataka kutumia maktaba code. Hii inaarifu compiler wa wote wa maazimio ya kazi, vigezo, structs, nakadhalika, sasa katika header files ili compiler unaweza moja, kuhakikisha kwamba unatumia rasilimali maktaba katika njia sahihi, na mbili, kuzalisha sahihi mkutano code. Kulingana na pale header maktaba files ni iko, syntax # ni pamoja na inatofautiana. Kama files header ziko katika mfumo wa default ni pamoja directory - kawaida, usr/include-- kisha angle syntax mabano ni kutumika, kama katika ni pamoja na # . Hata hivyo, kama files header ziko katika huo saraka kama code yako mwenyewe, mbili quote syntax ni kutumika, kama katika # ni pamoja na "mylib.h". Jambo la pili wewe kufanya ni kiungo katika binary maktaba faili wakati kukusanya code yako. Hii ni hatua muhimu super. Kumbuka majadiliano yetu mapema kuhusu jinsi header files wala vyenye utekelezaji code? Kama kusahau hatua hii, utapata makosa kuhusu alama undefined inatazamwa katika code yako. Ili kutatua hili, kutumia-l bendera ikifuatiwa mara moja bila nafasi kwa jina la maktaba. Juu ya mifumo ya wengi, ikiwa ni pamoja na appliance, darasa la C Maktaba ni moja kwa moja wanaohusishwa kwa ajili yenu. Hata hivyo, maktaba math wakati mwingine kutunza tofauti na kuhitaji wanaohusishwa na LM-. On appliance, sisi ya utunzaji wa hii kwa ajili yenu, na sisi pia kuhusisha maktaba CS50 na-lcs50. Unaweza kuona haya yote juu ya appliance wakati kukimbia kufanya. Sasa unapaswa kuwa na elimu unahitaji kutumia maktaba katika C. Kuwa na furaha ya kuchunguza. Jina langu ni Nate Hardison, na hii ni CS50.