[Powered by Google Translate] Nate HARDISON: In programmering, 'n biblioteek is 'n versameling van
verwante prewritten kode.
Biblioteke is hoe ons as programmeerders, deel gemeenskaplike en
nuttige kode met mekaar, met die verskillende programme wat ons
skryf, en selfs met die verskillende prosesse wat
dieselfde tyd op ons rekenaars.
>> Laat ons 'n bietjie verken.
Een van die meer algemene funksies wat jy het waarskynlik
is met behulp van die printf funksie.
Nou, is printf nie 'n magic funksie wat
hard gekodeer in die rekenaar -
maar eerder, dit is deel van die C Standard Biblioteke, wat
'n versameling van funksies wat kom met die
C-programmeertaal.
Sedert printf is nie gebou in die rekenaar, wat beteken dat
daar was 'n programmeerder wat eintlik gaan in en skryf die
printf funksie en gebundelde dit met die res van die standaard
biblioteke skakel sodat toekomstige programmeerders wil nie hê om
tweevoud by die poging.
En ons is seker dankbaar dat dit die geval is, want kyk
uit hoeveel kode dit eintlik printf neem om te implementeer.
>> Die C Standard Biblioteke, waarvan printf is 'n deel,
een van die belangrikste instrumente wat jy
in die aanpak CS50.
In bykomend tot die input-output biblioteek waar
printf lewe, daar kom 'n klomp van die ander biblioteke
jy sal waarskynlik oor die loop van CS50.
Byvoorbeeld, die tou biblioteek funksies te
vergelyk C snare, kry hul lengte, en koppel hulle.
En die wiskunde biblioteek gee jou nuttige
konstantes, soos pi en e.
Nou, in vergelyking met die standaard biblioteke van ander programmering
tale, die C Standard Biblioteke is baie klein,
maar hulle het nog steeds 'n aansienlike bedrag van die dinge.
En dit is nie te sê dat die Standard Biblioteke is die
net C biblioteke, daar is baie meer daar buite in die
wêreld vir jou om te gebruik, met inbegrip van die CS50 Biblioteek,
kartografie biblioteke met enkripsie en dekripsie
funksies, biblioteke met funksies te enkodeer en
speel video, en so aan.
>> Dit bring ons by 'n belangrike eenkant.
Een van die belangrikste vaardighede van ingenieurswese is om te weet van die
gereedskap wat beskikbaar is in jou toolbox, sodat jy kan gebruik om
hulle en vermy die wiel weer uitvind, tensy
jy het om dit te doen.
As programmeerders, biblioteke is een van die belangrikste
instrumente wat ons het.
Wanneer jy jouself die gesig staar 'n taak wat lyk vervelig of
alledaags, soos om die lengte van 'n C-string, jy
jouself moet vra indien dit die geval mag wees dat
iemand reeds dieselfde ding gedoen voor.
Kanse is dat jy sommige kon vind
hulp in 'n biblioteek.
>> So in tegniese terme, 'n biblioteek is 'n binêre lêer wat
is vervaardig deur dit te koppel saam 'n versameling van
voorwerp lêers met behulp van 'n instrument genoem, moet jy
raai dit al, die koppelingshistoon.
Object lêers o lêers wat jy kry as jy.
Stel C bron-kode.
Wanneer programmeerders skryf biblioteke, hulle gewoonlik
skei hul C-kode in twee tipes lêers:
header lêers en implementering lêers.
'N header lêer deur konvensie is die h lêer uitbreiding,
en dit bevat kode wat sê die biblioteek se
hulpbronne wat beskikbaar is vir jou om te gebruik.
Hierdie hulpbronne sluit in funksies, veranderlikes, structs,
tipe definisies, en so aan, en hulle saam is
algemeen na verwys as die koppelvlak.
In werklikheid, as jy ooit wonder wat is in 'n biblioteek,
die header lêers is die plek om te kyk.
>> Byvoorbeeld, kan jy trek usr / include / stdio.h en kontroleer
alles wat jy ooit wou weet oor die
die standaard io-biblioteek.
Daar is 'n baie van die dinge hier, en dit kan 'n bietjie van die
tyd tot waden deur.
Maar, saam met Google en die manpages, dit is die
plek om te gaan as jy wonder hoe die standaard I / O
biblioteek funksies werk.
So een van die belangrikste ding om daarop te let, al is, is dat die header lêers
tipies sluit nie funksie definisies -
dit is die werklike funksie implementasies.
Dit is 'n illustrasie van 'n belangrike rekenaarwetenskap
beginsel geroep inligting wegkruip, ook soos na verwys in
keer as inkapseling.
>> As die gebruiker of die kliënt van 'n biblioteek, het jy nie nodig het om te
weet van die werking van die biblioteek in
om dit te gebruik.
Onthou dat printf net 'n bietjie gelede?
Het jy al ooit gesien hoe die werklike kode voor?
Wel, ek neem aan dat jy nie het nie, selfs al het jy dalk
gebruik printf ton van die tye.
Al wat jy het om te weet, was die funksie verklaring teenwoordig
in die stdio.h header-lêer.
In elk geval, die voordeel van goeie inligting wegkruip is dat jy
en die programme wat jy skryf is geïsoleer van enige veranderinge in
die kode van die implementering van die biblioteek funksies.
Indien die implementering van printf veranderinge, hoef jy nie
om te gaan en verander al jou programme wat gebruik printf.
>> So, waar implementering gaan?
Wel, weer, deur konvensie, gaan die implementering in 'n
lêer met die c-lêer uitbreiding.
Gewoonlik header lêers en implementering lêers gaan hand
in die hand, so as jy 'n klomp van die nuwe string verklaar
funksies in mystring.h, dan sal jy definieer al
daardie funksies in mystring c.
So dan is die kop-en implementering lêers is dan
saamgestel is, voorwerp lêers wat word dan gekoppel
die binêre biblioteek lêer saam te produseer.
Die biblioteek skrywer sal dan die binêre lêer langs skip
met die header lêers vir programmeerders wat wil om te gebruik
die biblioteek.
Op hierdie punt, die c implementering. Lêers is nie
benodig nie, behalwe om die biblioteek te hercompileren van nuuts af, so
hulle dikwels uitgelaat.
>> Die C-biblioteek te gebruik, moet jy twee dinge te doen.
Eerstens moet jy # sluit die biblioteek se header lêers en die
bronkode lêer waar jy wil gebruik
die biblioteek se kode.
Dit lig die samesteller van al die verklarings van
funksies, veranderlikes, structs, ensovoorts, wat in die
header lêers sodat die vertaler kan een, verseker dat
jy die gebruik van die biblioteek se hulpbronne op die regte manier,
en twee, die toepaslike vergadering kode genereer.
Afhangende van waar die biblioteek se header lêers
geleë is, die # sluit in sintaksis wissel.
As die header lêers is geleë in die stelsel se
default sluit directory -
tipies, usr/include--
dan is die hoek tussen hakies sintaksis gebruik word, soos in # sluit
.
Maar, as die header lêers is geleë in dieselfde
gids as jou eie kode, die dubbele quote sintaksis
gebruik word, soos in "mylib.h" sluit.
>> Die tweede ding wat jy hoef te doen is om te skakel in die binêre
biblioteek lêer wanneer jy jou kode stel.
Dit is 'n super belangrike stap.
Onthou ons vorige bespreking oor hoe header
lêers bevat geen implementering-kode?
As jy vergeet om hierdie stap, sal jy foute oor
undefined simbole waarna verwys word in jou kode.
Om dit op te los, gebruik die-l vlag onmiddellik gevolg
sonder 'n ruimte deur die naam van die biblioteek.
Op baie stelsels, met inbegrip van die toestel, die C Standard
Biblioteke word outomaties gekoppel vir jou.
Egter soms die wiskunde biblioteek gebundelde afsonderlik
en dalk moet gekoppel word met lm.
Op die toestel, ons sorg van hierdie vir jou, en ons het ook
skakel die CS50 biblioteek met lcs50.
Jy kan sien al hierdie dinge op die toestel wanneer jy loop maak.
>> Nou moet jy die kennis wat jy nodig het om te gebruik
biblioteke in C. Geniet dit.
My naam is Nate Hardison, en dit is CS50.