[Powered by Google Translate] NATE Hardison: I programmering er et bibliotek en samling av
relatert forhåndsskrevet kode.
Bibliotekene er hvordan vi som programmerere, dele felles og
nyttig kode med hverandre, med de ulike programmene vi
skrive, og selv med de forskjellige prosesser som kjører på
samtidig på våre datamaskiner.
>> La oss utforske litt.
En av de mer vanlige funksjoner som du sikkert har
brukt er printf funksjonen.
Nå er printf ikke noen magisk funksjon som har vært
hardkodet i datamaskinen -
snarere er det en del av C Standard biblioteker, som er
en samling av funksjoner som følger med
C programmeringsspråk.
Siden printf ikke er bygget inn i datamaskinen, betyr det at
det var noen programmerer som faktisk gikk inn og skrev
printf funksjon og pakket med resten av standarden
bibliotekene, slik at fremtidige programmerere ikke ville ha til å
duplisere innsatsen.
Og vi er sikker takknemlig for at det er tilfelle, fordi sjekk
ut hvor mye kode det faktisk tar å gjennomføre printf.
>> C-Standard Biblioteker, hvorav printf er en del, er
en av de viktigste verktøyene du
har i å takle CS50.
I tillegg til input-output bibliotek der
printf liv, er det en haug med andre bibliotek som
vil du sannsynligvis bruke i løpet av CS50.
For eksempel, har strengen biblioteket funksjoner til
sammenligne C strenger, får sin lengde, og sette sammen dem.
Og regnestykket biblioteket gir deg nyttig
konstanter, som pi og e.
Nå, i forhold til standard biblioteker av andre programmeringsspråk
språk, C Standard Bibliotekene er veldig små,
men de har fortsatt en betydelig mengde ting.
Og det er ikke å si at standarden Bibliotekene er den
bare C-biblioteker, for det er mange flere der ute i
verden for deg å bruke, inkludert CS50 Library,
kartografi biblioteker med kryptering og dekryptering
funksjoner, biblioteker med funksjoner for å kode og
spille av video, og så videre.
>> Dette bringer oss til et viktig side.
En av de grunnleggende ferdighetene til prosjektering er å kjenne
verktøy tilgjengelig i verktøykassen, slik at du kan bruke
dem og unngå å finne opp hjulet med mindre
du må gjøre det.
Som programmerere, bibliotekene er en av de viktigste
verktøyene vi har.
Når du finner deg selv overfor en oppgave som virker kjedelig eller
vanlig, som å finne lengden på en C streng, du
bør spørre deg selv om det kan være tilfelle at
noen er allerede gjort det samme før.
Sjansen er at du kan finne noen
hjelp i et bibliotek.
>> Så i tekniske termer, er et bibliotek en binær fil som
har blitt produsert ved å koble sammen en samling av
objekt-filer ved hjelp av et verktøy kalt, du
gjettet det, linker.
Objekt-filer er de. O-filer som du får når du
kompilere C kildekoden.
Når programmerere skrive bibliotekene, typisk de
skille deres C-kode i to typer filer:
header filer og implementering filer.
En header fil ved konvensjonen er gitt. H filtypen,
og den inneholder kode som erklærer bibliotekets
ressurser som er tilgjengelige for deg å bruke.
Disse ressursene inkluderer funksjoner, variabler, structs,
typedefinisjoner, og så videre, og sammen, er de
ofte referert til som grensesnitt.
Faktisk, hvis du noen gang lurer på hva som er i et bibliotek,
header-filene er stedet å lete.
>> For eksempel kan du trekke opp usr / include / stdio.h og sjekk
ut alt gang du ønsket å vite om
standard io biblioteket.
Det er en masse ting her, og det kan ta litt av
tid til å vasse gjennom.
Men sammen med Google og manpages, er dette
sted å gå hvis du lurer på hvordan standard I / O
bibliotekfunksjoner arbeid.
Så en viktig ting å merke seg her, skjønt, er at header filer
vanligvis ikke inkluderer funksjonsdefinisjoner -
det vil si den faktiske funksjon implementeringer.
Dette er en illustrasjon av en viktig informatikk
prinsipp kalt informasjon skjule, også referert til på
ganger så innkapsling.
>> Som brukeren eller kunden av et bibliotek, trenger du ikke å
vet om det innvendige av biblioteket i
For å bruke den.
Husk å se printf bare litt siden?
Hadde du noen gang sett selve koden før?
Vel, jeg antar at du ikke har, selv om du kanskje
har brukt printf tonnevis av ganger.
Alt du måtte vite var funksjonen erklæringen stede
i stdio.h header-fil.
Uansett, er fordelen med god informasjon hiding at du
og programmene du skriver er isolert fra eventuelle endringer i
koden for gjennomføringen av biblioteket funksjoner.
Dersom gjennomføringen av printf endringer, trenger du ikke ha
å gå inn og endre alle dine programmer som bruker printf.
>> Så hvor går gjennomføringen?
Vel, igjen, etter konvensjonen, går gjennomføringen i en
filen med. c filtypen.
Vanligvis header filer og implementering filer går hånd
i hånden, så hvis du har erklært en haug med ny streng
funksjoner i mystring.h, så vil du definere alle
disse funksjonene i myString. c..
Så da header og gjennomføring filer er så
kompilert, lage objekt-filer som deretter koblet
sammen for å produsere den binære bibliotekfilen.
Biblioteket forfatter vil deretter sende den binære filen sammen
med header-filer til programmerere som ønsker å bruke
biblioteket.
På dette punktet, de. C implementering filene er ikke
nødvendig, bortsett fra å rekompilere biblioteket fra bunnen av, så
de er ofte utelatt.
>> Å bruke C-biblioteket, må du gjøre to ting.
Først må du # include bibliotekets header filer og
kildekoden filen der du ønsker å bruke
koden til biblioteket.
Dette forteller kompilatoren av alle uttalelser fra
funksjoner, variabler, structs, et cetera, er til stede i
header-filer slik at kompilatoren kan man, sørge for at
du bruker bibliotekets ressurser på riktig måte,
og to, generere den riktige montering koden.
Avhengig av hvor bibliotekets header filer er
plassert, varierer # include syntaks.
Hvis header filene ligger i systemets
standard inkluderer katalog -
typisk, usr/include--
deretter vinkelbena syntaksen brukes, som i # include
.
Men hvis header filene ligger i samme
katalog som din egen kode, er det dobbelt anførselstegn syntaks
brukes, som i # include "mylib.h".
>> Den andre tingen du trenger å gjøre er å koble i det binære
bibliotekfil når du kompilere koden din.
Dette er en super viktig skritt.
Husk vår tidligere diskusjon om hvordan header
filene inneholder ikke implementeringen koden?
Hvis du glemmer dette trinnet, vil du få feil om
udefinerte symboler referert i koden din.
For å løse dette ved å bruke-l flagget fulgte umiddelbart
uten en plass ved navnet på biblioteket.
På mange systemer, inkludert apparatet, C Standard
Bibliotekene blir automatisk koblet til deg.
Imidlertid er regnestykket bibliotek ofte være knyttet separat
og må kanskje ha sammenheng med-lm.
På apparatet, tar vi vare på dette for deg, og vi har også
knytte CS50 biblioteket med-lcs50.
Du kan se alt dette på apparatet når du kjører gjør.
>> Nå bør du ha den kunnskapen du trenger for å bruke
bibliotekene i C. Ha det gøy å utforske.
Mitt navn er Nate Hardison, og dette er CS50.