[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.