[Powered by Google Translate] Nate HARDISON: Nan pwogramasyon, yon bibliyotèk se yon koleksyon ki gen rapò ak kòd prewritten. Bibliyotèk yo ap kijan nou, menm jan pwogramasyon, pati nan komen ak itil kòd youn ak lòt, ak pwogram yo diferan nou ekri, e menm ak pwosesis yo diferan kouri nan an menm tan nan konpitè nou an. Se pou nou eksplore yon ti jan. Youn nan fonksyon sa yo ke ou te pwobableman pi komen te lè l sèvi avèk fonksyon an se printf. Koulye a, printf se pa kèk fonksyon majik ki te gen difisil-kode nan òdinatè a - olye, li nan yon pati nan Bibliyotèk yo Creole C yo, ki se yon koleksyon fonksyon ki vini ak nan C pwogramasyon lang. Depi printf se pa sa bati nan òdinatè a, ki vle di ke te gen kèk pwogramè ki aktyèlman ale nan e li te ekri a printf fonksyon ak fourni l 'ak rès la nan estanda a bibliyotèk pou ke pwogramasyon lavni pa ta gen yo kopi efò a. Ak nou ap asire w rekonesan ke sa a, se ka a, paske tcheke ki kantite lajan ou kòd li aktyèlman pran aplike printf. C Bibliyotèk estanda a, peyi ki printf se yon pati, se youn nan zouti ki pi enpòtan ou genyen nan abòde CS50. Anplis de sa nan bibliyotèk la Antre-Sòti ki kote lavi printf, gen yon pakèt moun sou bibliyotèk ki lòt ou pral pwobableman itilize sou kou nan CS50. Pou egzanp, bibliyotèk la fisèl la gen fonksyon konpare C strings, jwenn longè yo, epi yo anchene yo. Ak bibliyotèk la matematik ba ou itil konstan, tankou pi ak e. Koulye a, konpare ak bibliyotèk yo estanda nan pwogram lòt lang, C Bibliyotèk yo Creole yo se reyèlman piti, men yo toujou gen yon kantite siyifikatif bagay. Epi sa a, pa vle di ke Bibliyotèk yo Creole se nan sèlman C bibliyotèk; gen anpil plis yo deyò nan a mond pou ou pou w itilize, ki gen ladan Bibliyotèk la CS50, kartografye bibliyotèk ak chifreman ak dekripte fonksyon, bibliyotèk ak fonksyon programme ak jwe tounen videyo, ak sou sa. Sa a pote nou nan yon sou kote enpòtan. Youn nan teknik ki esansyèl nan jeni se konnen nan zouti ki disponib nan bwat zouti pou ou pou sa ou ka sèvi ak yo, epi evite reenvante wou an sof si ou gen yo fè sa. Kòm pwogramasyon, bibliyotèk yo se youn nan pi enpòtan an zouti nou genyen. Lè ou jwenn tèt ou fè fas a yon travay ki sanble fatigan oswa courante, tankou dekouvri longè yon fisèl C, ou ta dwe mande tèt ou si li ta ka ka a ki yon moun nan deja fè menm bagay la anvan. Chans yo se ke ou ta ka jwenn kèk ede nan yon bibliyotèk. Se konsa, an tèm teknik, yon bibliyotèk se yon dosye binè ki ki te pwodwi pa ki lye ak ansanm yon koleksyon dosye objè lè l sèvi avèk yon zouti ki rele, ou dvine li, Linkshere la. Dosye objè moun sa yo ki. Dosye o ke ou jwenn lè ou konpile C kòd sous. Lè pwogramasyon ekri bibliyotèk, anjeneral, yo separe kòd C yo nan de kalite dosye: header dosye ak dosye aplikasyon. Yon dosye header nan konvansyon bay yo. Ekstansyon an dosye h, epi li gen kòd ki deklare nan bibliyotèk la resous ki disponib pou ou pou w itilize. Resous sa yo gen ladan yo fonksyon, varyab, strukt, definisyon tip, ak sou sa, epi ansanm, yo se souvan refere li kòm koòdone la. An reyalite, si w ap janm mande sa ki nan yon bibliyotèk, yon dosye yo header yo se kote yo gade. Pou egzanp, ou ka rale moute uzr / gen ladan / stdio.h epi tcheke soti tout sa ou janm te vle konnen sou estanda IO bibliyotèk la. Genyen nan yon anpil nan bagay nan isit la, epi li ka pran yon ti jan nan tan pase mache nan. Sepandan, ansanm ak Google ak manpaj yo, sa a se nan mete yo ale, si w ap mande ki jan estanda a mwen / O fonksyon bibliyotèk travay. Se konsa, yon sèl bagay kle nan note isit la, menm si, se ke dosye header tipikman pa gen ladan yo definisyon fonksyon - ki se, en yo fonksyon aktyèl. Sa a se yon demonstrasyon pou montre yon syans òdinatè enpòtan prensip yo rele kache enfòmasyon, tou refere yo nan fwa kòm ANKAPSILASYON. Kòm itilizatè a oswa kliyan an nan yon bibliyotèk, ou pa bezwen konnen sou entèrn yo nan bibliyotèk la nan bay lòd pou yo itilize li. Sonje wè printf jis yon ti jan de sa? Te ou janm wè kòd aktyèl la ye anvan an? Oke, mwen asime ke ou genyen pa, menm si ou ka vle konsidere te itilize tòn printf nan fwa. Tout sa ou te gen yo konnen te prezan nan deklarasyon fonksyon nan dosye a header stdio.h. Anyway, benefis nan kache enfòmasyon bon se ke ou ak pwogram sa yo ou ekri yo izole yo de nenpòt chanjman nan kòd la nan aplikasyon an nan fonksyon bibliyotèk la. Si aplikasyon an nan chanjman printf, ou pa gen ale ak chanje tout pwogram ou a, ki itilize printf. Se konsa, kote aplikasyon 'al jwenn? Oke, ankò, pa konvansyon, egzekisyon an ale nan yon dosye avèk yo. ekstansyon an dosye c. Anjeneral, dosye header ak dosye aplikasyon ale men nan men, se konsa si ou te deklare yon pakèt moun sou fisèl nouvo fonksyon nan mystring.h, lè sa a ou pral defini tout sa yo fonksyon nan mystring. c. Se konsa, Lè sa a, dosye yo header ak aplikasyon yo se Lè sa a, konpile, kreye dosye objè ke yo Lè sa a, lye ansanm yo pwodwi dosye a bibliyotèk binè. Ekriven bibliyotèk la pral Lè sa a bato dosye a binè ansanm ak dosye yo header pwogramasyon ki ta vle itilize bibliyotèk la. Nan pwen sa a,. Dosye yo aplikasyon c yo pa nesesè, sof nan compile bibliyotèk la nan grate, se konsa yo ap souvan kite deyò. Pou itilize bibliyotèk la C, sa ou dwe fè de bagay sa yo. Toudabò, ou dwe gen ladan yo # dosye yo header bibliyotèk la ak sous kòd dosye kote ou ta renmen itilize kòd bibliyotèk la. Sa a enfòme du a nan tout deklarasyon ki nan fonksyon, varyab, strukt, et setra,, prezan, nan la dosye header pou ke du a kapab yon sèl, asire ke w ap sèvi ak resous bibliyotèk la nan fason ki kòrèk, ak de, jenere kòd la tout pèp ki apwopriye yo. Tou depan de ki kote dosye header bibliyotèk la a yo se ki sitiye, sentaks la # enkli varye. Si dosye yo header yo sitiye nan nan a sistèm default gen ladan anyè - tipikman, usr/include-- Lè sa a, se ang parantèz sentaks la itilize, tankou nan # gen ladan yo . Sepandan, si dosye yo header yo sitiye nan menm bagay la tou anyè kòm kòd pwòp ou a, sentaks la quote doub se itilize, tankou nan # enkli "mylib.h". Bagay la dezyèm ou gen fè se lyen an nan binè la dosye bibliyotèk lè ou konpile kòd ou a. Sa a se yon etap super enpòtan. Sonje diskisyon pi bonè nou an sou ki jan header dosye pa gen kòd aplikasyon? Si ou ta bliye etap sa a, ou pral jwenn erè sou senbòl endefini referans nan kòd ou a. Pou rezoud sa a, sèvi ak L-drapo a swiv imedyatman san yon espas pa non an nan bibliyotèk la. Sou sistèm anpil, ki gen ladan aparèy la, Creole nan C Bibliyotèk yo otomatikman lye pou ou. Sepandan, se bibliyotèk la matematik pafwa fourni separeman ak ta ka bezwen yo dwe lye avèk-LM. Sou aparèy la, nou pran swen nan sa a pou ou, epi nou menm tou nou konekte bibliyotèk la CS50 ak-lcs50. Ou ka wè tout bagay sa yo sou aparèy la lè ou kouri fè. Koulye a, ou ta dwe gen konesans nan ou bezwen sèvi ak bibliyotèk nan C. Pran plezi eksplore. Non mwen se Nate Hardison, e sa se CS50.