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