[Powered by Google Translate] NATE Hardison: I programmering, er et bibliotek en samling af
relaterede foruddefineret kode.
Biblioteker er, hvordan vi som programmører, deler fælles og
hjælpsomme kode med hinanden, med de forskellige programmer, vi
skrive, og selv med de forskellige processer kører på
samme tid på vores computere.
>> Lad os udforske en smule.
En af de mere almindelige funktioner, som du har sikkert
brugt er den printf funktion.
Nu printf er ikke noget magisk funktion, som har været
kodet ind i computeren -
snarere, det er en del af C Standard Biblioteker, der er
en samling af funktioner, der kommer med
C programmeringssprog.
Da printf ikke er indbygget i computeren, betyder det, at
der var nogle programmør, der rent faktisk gik ind og skrev det
printf funktion og bundtet det med resten af ​​standarden
biblioteker således at fremtidige programmører ikke ville have til
duplikere indsatsen.
Og vi er sikker taknemmelige for, at det er tilfældet, fordi tjek
ud af, hvor meget kode det faktisk tager at gennemføre printf.
>> De C Standard Biblioteker, hvoraf printf er en del, er
en af ​​de vigtigste værktøjer, du
har i forbindelse med bekæmpelse CS50.
Ud over den input-output bibliotek, hvor
printf liv, er der en masse andre biblioteker,
du skal nok bruge i løbet af CS50.
For eksempel har strengen biblioteket funktioner
sammenligne C strenge, få deres længde, og sammenkæde dem.
Og math biblioteket giver dig nyttige
konstanter, som pi og e.
Nu, i forhold til standard biblioteker af anden programmering
sprog, er C Standard Biblioteker er virkelig små,
men de har stadig en betydelig mængde af ting.
Og det er ikke til at sige, at standarden Biblioteker er den
kun C-biblioteker og der er mange flere derude i
verden for dig at bruge, herunder CS50 Bibliotek,
kartografi biblioteker med kryptering og dekryptering
funktioner, biblioteker med funktioner til at indkode og
afspille video og så videre.
>> Dette bringer os til en vigtig side.
En af de væsentlige færdigheder for teknik er at vide det
værktøjer til rådighed i din værktøjskasse, så du kan bruge
dem og undgå at genopfinde hjulet, medmindre
du er nødt til at gøre det.
Som programmører, er biblioteker en af ​​de vigtigste
redskaber, vi har.
Når du finder dig selv over for en opgave, der synes kedelig eller
almindelig, som at finde længden af ​​en C-streng, du
bør spørge dig selv, om det kunne være tilfældet, at
nogen har allerede gjort det samme før.
Chancerne er, at du kunne finde nogle
hjælp inden for et bibliotek.
>> Så teknisk set er et bibliotek en binær fil,
er fremstillet ved at kombinere en samling af
objekt filer ved hjælp af et værktøj kaldet, du
gættet det, linkeren.
Objekt-filer er dem. O filer, du får, når du
kompilere C kildekode.
Når programmører skriver biblioteker, de typisk
adskille deres C-kode i to typer af filer:
header-filer og gennemførelse filer.
Et hovedstød fil ved konvention får. H. filtypenavn,
og den indeholder kode, der erklærer bibliotekets
ressourcer, der er til rådighed for dig at bruge.
Disse ressourcer omfatter funktioner, variabler, structs,
type definitioner, og så videre, og sammen er de
almindeligvis kaldet grænsefladen.
I virkeligheden, hvis du er nogensinde spekulerer på, hvad der er i et bibliotek,
header-filer er det rette sted at kigge.
>> For eksempel kan du trække op usr / include / stdio.h og tjek
alt, hvad du nogensinde ønsket at vide om
standard io biblioteket.
Der er en masse ting herinde, og det kan tage en smule af
tid at vade igennem.
Men sammen med Google og de manpages, er dette den
sted at gå Hvis du undrer dig over, hvordan standard I / O
biblioteksfunktioner arbejde.
Så en vigtig ting at bemærke her, er dog, at header-filer
typisk ikke omfatter funktionsdefinitioner -
det vil sige, den aktuelle funktion implementeringer.
Dette er en illustration af en vigtig datalogi
Princippet kaldes information skjul, også nævnt i
gange så indkapsling.
>> Når brugeren eller kunden af ​​et bibliotek, behøver du ikke at
kender den interne af biblioteket i
For at kunne bruge det.
Husk at se printf bare en smule siden?
Havde du nogensinde set den konkrete kode før?
Nå, jeg formoder, at du ikke har, selvom du måske
har brugt printf tons gange.
Alt du havde at vide var funktionserklæringen til stede
i stdio.h header fil.
Anyway, til gavn for god information skjule er, at du
og de programmer, du skriver er isoleret fra eventuelle ændringer i
koden for gennemførelse af bibliotekets funktioner.
Hvis gennemførelsen af ​​printf ændringer, behøver du ikke
at gå og ændre alle dine programmer, der bruger printf.
>> Så hvor kommer implementering hen?
Nå, igen efter sædvane går gennemførelse i en
fil med den. c. filtypenavnet.
Normalt header-filer og gennemførelse filer går hånd
i hånd, hvis så du har erklæret en masse ny streng
funktioner i mystring.h, så vil du definere alle
disse funktioner i mystring. ca.
Så header og implementering filer er så
udarbejdet, skaber objekt filer, der derefter forbundet
sammen til frembringelse af den binære biblioteksfilen.
Biblioteket forfatter vil derefter sende den binære fil ad
med header filer til programmører, der ønsker at bruge
biblioteket.
På dette tidspunkt er de. C Gennemførelse filer ikke
behov, bortset fra at genkompilere biblioteket fra bunden, så
de er ofte udeladt.
>> For at bruge C-bibliotek, du er nødt til at gøre to ting.
Først skal du # include bibliotekets header-filer og de
kildekode fil, hvor du ønsker at bruge
bibliotekets kode.
Dette informerer compiler af alle erklæringer om
funktioner, variable structs, et cetera, til stede i
header-filer, så compileren kan man, sikre, at
du bruger bibliotekets ressourcer på den rigtige måde,
og to, genererer den relevante samling kode.
Afhængig af hvor bibliotekets header-filer er
placeret, # include syntaksen varierer.
Hvis header filer er placeret i systemets
standard omfatter bibliotek -
typisk, usr/include--
så vinklen parentes syntaks anvendes, som i # include
.
Hvis header filerne er placeret i samme
bibliotek som din egen kode, er det dobbelt citat syntaks
anvendes, som i # include "mylib.h".
>> Den anden ting du skal gøre er at linke i den binære
biblioteksfil når du kompilerer din kode.
Det er et super vigtigt skridt.
Husk vores tidligere diskussion om, hvordan header
filer ikke indeholder gennemførelse kode?
Hvis du glemmer dette trin, får du fejl omkring
udefinerede symboler der refereres til i din kode.
For at løse dette, skal du bruge-l flaget efterfulgt umiddelbart
uden mellemrum ved navn biblioteket.
På mange systemer, herunder apparatet, C Standard
Biblioteker sammenkædes automatisk for dig.
Imidlertid er math biblioteket undertiden bundtet separat
og muligvis kædes sammen med-lm.
På apparatet, tager vi os af det for dig, og vi har også
forbinde CS50 bibliotek med-lcs50.
Du kan se alt dette på apparatet, når du kører lave.
>> Nu skulle du have den viden, du skal bruge
biblioteker i C. er sjovt at opleve.
Mit navn er Nate Hardison, og dette er CS50.