[Powered by Google Translate] NATE Hardison: I programmering är ett bibliotek en samling av
relaterade färdigskriven kod.
Biblioteken är hur vi som programmerare, dela gemensamma och
hjälp kod med varandra, med de olika program vi
skriva, och även med de olika processer som körs på
Samtidigt på våra datorer.
>> Låt oss undersöka lite.
En av de vanligaste funktioner som du har förmodligen
använt är printf funktionen.
Nu printf är inte någon magisk funktion som har varit
hårdkodade i datorn -
snarare är det en del av C-standard bibliotek som är
en samling av funktioner som kommer med
C programmeringsspråk.
Eftersom printf inte är inbyggt i datorn innebär att
det fanns någon programmerare som faktiskt gick in och skrev
printf funktion och kombinerade den med resten av standarden
bibliotek så att framtida programmerare inte skulle behöva
duplicera ansträngningen.
Och vi är säkra på tacksamma att så är fallet, eftersom kontrollera
hur mycket kod det faktiskt tar att genomföra printf.
>> C-Standard bibliotek, av vilka printf är en del, är
en av de viktigaste verktyg du
har att ta itu med CS50.
Förutom input-output bibliotek där
printf liv, finns det en massa andra bibliotek som
du kommer förmodligen att använda under loppet av CS50.
Till exempel har strängen biblioteket funktioner
jämföra C strängar, få deras längd, och sammanfoga dem.
Och matte biblioteket ger hjälp
konstanter, som pi och e.
Nu, jämfört med de vanliga bibliotek av andra program
språk, C-standard biblioteken är verkligen små,
men de har fortfarande en betydande mängd saker.
Och det är inte att säga att de standardbibliotek är
bara C-bibliotek, det finns många fler ute i
värld som du kan använda, inklusive CS50 biblioteket
kartografi bibliotek med kryptering och dekryptering
funktioner, bibliotek med funktioner för att koda och
spela upp video, och så vidare.
>> Det leder oss till en viktig undan.
En av de viktigaste färdigheter teknik är att veta
verktyg som finns i din verktygslåda så att du kan använda
dem och undvika att återuppfinna hjulet inte
du måste göra det.
Som programmerare, bibliotek är en av de viktigaste
verktyg vi har.
När du befinner dig inför en uppgift som verkar tråkiga eller
vanligt, som att hitta längden av en C-sträng, du
bör fråga dig själv om det kan vara så att
någon har redan gjort samma sak innan.
Chansen är stor att du kan hitta några
hjälp inom ett bibliotek.
>> Så i tekniska termer, är ett bibliotek en binär fil som
har producerats genom att koppla ihop en samling av
objektfiler med ett verktyg som heter, du
gissat det, linkern.
Objektfiler är de. O-filer som du får när du
kompilera C källkod.
När programmerare skriver bibliotek, vanligtvis de
skilja sina C-kod i två typer av filer:
header-filer och filer genomförande.
Ett sidhuvud fil genom konventionen ges. H. filändelsen,
och det innehåller kod som förklarar bibliotekets
resurser som finns tillgängliga för dig att använda.
Dessa resurser inkluderar funktioner, variabler, structs,
typdefinitioner, och så vidare, och tillsammans, är de
vanligen kallad gränssnittet.
Faktum är att om du någonsin undrar vad som finns i ett bibliotek,
de header-filer är platsen att leta.
>> Till exempel kan du dra upp usr / include / stdio.h och kontrollera
ut allt du någonsin velat veta om
standard io biblioteket.
Det finns en massa saker här, och det kan ta lite
tid att ta sig igenom.
Men tillsammans med Google och manualsidor är detta
plats att gå om du undrar hur standard-I / O
biblioteksfunktioner fungerar.
Så en viktig sak att notera här är dock att header-filer
vanligtvis ingår inte funktionsdefinitioner -
det är, den faktiska funktionen implementeringar.
Detta är en illustration av en viktig datavetenskap
princip som kallas information hiding, även kallat på
gånger som inkapsling.
>> När användaren eller kunden av ett bibliotek behöver du inte
veta om interna i biblioteket i
För att kunna använda den.
Kom ihåg att se printf bara lite sen?
Hade du någonsin sett den faktiska koden innan?
Tja, jag antar att du inte har, även om du kanske
har använt printf massor av gånger.
Allt du måste veta var funktionen deklarationen närvarande
i stdio.h filhuvudet.
Hur som helst, är fördelen med bra information gömmer du
och de program du skriver är isolerade från förändringar i
koden för genomförande av bibliotekets funktioner.
Om genomförandet av printf förändringar, behöver du inte
att gå och ändra alla dina program som använder printf.
>> Så var går genomförande?
Nåväl, återigen, enligt praxis, går att genomföra i en
fil med. c. filändelsen.
Vanligtvis header-filer och filer genomförande går hand
i handen, så om du har deklarerat ett gäng ny sträng
funktioner i mystring.h, då du kommer att definiera alla
dessa funktioner i MyString. c..
Så då rubriken och genomförande filer sedan
sammanställs, skapa objektfiler som sedan är länkade
tillsammans för att skapa filen binära biblioteket.
Biblioteket författare kommer då skicka binär fil längs
med header-filer till programmerare som vill använda
biblioteket.
Vid denna punkt,. C genomförandet filer är inte
behövs, förutom att kompilera biblioteket från början, så
de är ofta utelämnas.
>> Om du vill använda C-biblioteket, måste du göra två saker.
Först måste du inkludera # bibliotekets header-filer och
källkod fil där du vill använda
bibliotekets kod.
Detta informerar kompilatorn av alla deklarationer
funktioner, variabler, structs, et cetera, som finns i
header-filer så att kompilatorn kan en, försäkra att
du använder bibliotekets resurser på rätt sätt,
och två, generera lämplig assemblerkod.
Beroende på var bibliotekets header-filer är
belägen varierar # include syntax.
Om header-filer finns i systemets
standard include-katalog -
typiskt, usr/include--
då vinkeln konsoler syntaxen används, såsom i # include
.
Men om header-filer finns i samma
katalog som din egen kod, är den dubbla citat syntaxen
används, som i # include "mylib.h".
>> Det andra du behöver göra är att koppla in den binära
biblioteksfil när du bygger din kod.
Detta är en super viktigt steg.
Kom ihåg vår tidigare diskussion om hur header
filer inte innehåller genomförandet kod?
Om du glömmer det här steget får du fel om
odefinierade symboler som nämns i din kod.
För att lösa detta, använd-l flaggan följde omedelbart
utan ett utrymme av namnet på biblioteket.
På många system, inklusive apparaten, C Standard
Bibliotek länkas automatiskt åt dig.
Dock matte biblioteket ibland medföljande separat
och kan behöva kopplas till-LM.
På apparaten, tar vi hand om det åt dig, och vi
länka CS50 biblioteket med-lcs50.
Du kan se allt detta på apparaten när du kör göra.
>> Nu bör du ha den kunskap du behöver för att använda
bibliotek i C. Ha kul att utforska.
Mitt namn är Nate Hardison, och detta är CS50.