[Powered by Google Translate] Nate Hardison: În programare, o bibliotecă este o colecție de legate de predefinită cod. Bibliotecile sunt cum noi, ca programatori, cota comună și Codul este utill unul cu altul, cu diferite programe noi scrie, și chiar cu procese diferite de rulare la același timp, pe computerele noastre. Să exploreze un pic. Una dintre cele mai comune funcții pe care le-ați, probabil, fost utilizați este functia printf. Acum, printf nu este o funcție magic, care a fost hard-codate in calculator - mai degrabă, este o parte din bibliotecile standard C, care sunt o colecție de funcții care vine cu C limbaj de programare. Deoarece printf nu este construit în calculator, ceea ce înseamnă că au existat unele programator care de fapt a mers în scris și Funcția printf si balotati cu restul standardului biblioteci, astfel încât programatorii viitoare nu ar trebui să le duplicat efort. Și suntem siguri recunoscători că e cazul, pentru că verificați cât de mult Codul de fapt nevoie pentru a pune în aplicare printf. Bibliotecile standard C, din care o parte este printf, sunt unul dintre instrumentele cele mai importante pe care au în abordarea CS50. În plus față de bibliotecă intrare-ieșire în cazul în care printf vieți, există o grămadă de alte biblioteci care veți utiliza, probabil, de-a lungul CS50. De exemplu, biblioteca string are funcții pentru compara siruri de caractere C, pentru a primi lungimea lor, și le înlănțui. Și biblioteca matematica îți dă ajutor constante, cum ar fi pi și e. Acum, în comparație cu bibliotecile standard ale programării alte limbi, bibliotecile standard C sunt foarte mici, dar ei încă mai au o cantitate semnificativă de lucruri. Și asta nu e să spun că Bibliotecile standard sunt doar bibliotecile C, există mult mai multe acolo în lume pentru tine de a utiliza, inclusiv Biblioteca CS50, biblioteci Cartografie cu criptare și decriptare funcții, biblioteci cu funcții pentru a codifica și reda filme, și așa mai departe. Acest lucru ne aduce la o parte importantă. Unul dintre competențele esențiale ale ingineriei este cunoașterea instrumente disponibile în caseta de instrumente, astfel încât să puteți utiliza le și pentru a evita reinventarea roții cu excepția cazului în trebuie să facă acest lucru. Ca programatori, bibliotecile sunt una dintre cele mai importante instrumentele pe care le au. Cand te afli confruntă cu o sarcină care pare plictisitor sau banal, cum ar fi găsirea lungimea unui șir C, te ar trebui să vă întrebați dacă ar fi cazul în care cineva a făcut deja același lucru înainte. Sansele sunt că ați putea găsi unele de ajutor într-o bibliotecă. Deci, în termeni tehnici, o bibliotecă este un fișier binar care a fost produs prin legarea împreună o colecție de fișierele obiect folosind un instrument numit, te ghicit, linker-ul. Fișiere obiect sunt cele care o fișierele ai atunci când. compila C codul sursă. Când programatorii scriu biblioteci, acestea sunt de obicei separe codul C în două tipuri de fișiere: fișiere antet și fișierele de punere în aplicare. Un fișier antet, prin convenție, este dat extensia h.. Fișier, și conține cod care declară biblioteca resursele care sunt disponibile pentru tine de a utiliza. Aceste resurse includ funcții, variabile, struct, definițiile de tip, și așa mai departe, și împreună, ele sunt denumit în mod obișnuit ca interfață. De fapt, daca te intrebi ce e vreodată într-o bibliotecă, fișierele header sunt locul să se uite. De exemplu, aveți posibilitatea să trageți în sus usr / include / stdio.h și să verificați din tot ce ai dorit vreodată să știți despre standardul io bibliotecă. Există o mulțime de lucruri aici, și poate dura un pic de timp pentru a Wade prin intermediul. Cu toate acestea, împreună cu Google și manpages, aceasta este locul pentru a merge în cazul în care vă întrebați cum I / O standard funcții de bibliotecă muncă. Deci, un lucru esențial de reținut aici, însă, este faptul că fișierele header de obicei, nu includ definiții de funcții - că este, implementari efective de funcții. Aceasta este o ilustrare a unui calculator știință importantă principiu numit ascunderea de informații, de asemenea, menționat la ori încapsulare. Ca utilizator sau client al unei biblioteci, nu aveți nevoie să știu despre interne ale bibliotecii în obligarea să-l folosească. Amintiți-vă văd printf doar un pic în urmă? Dacă ați văzut vreodată înainte de codul actual? Ei bine, eu presupun că nu ai, chiar dacă s-ar putea au folosit tone de printf ori. Tot ce trebuia să știe a fost declarația prezent funcția de în fișierul header stdio.h. Oricum, beneficiul ascunderea informației bună este că vă și programele pe care le scrie sunt izolate de la orice schimbări în Codul de punerea în aplicare a funcțiilor de bibliotecă. În cazul în care punerea în aplicare a modificărilor printf, nu aveți să meargă și să schimbe toate programele care utilizează printf. Deci, în cazul în care punerea în aplicare se duc? Ei bine, din nou, prin convenție, punerea în aplicare se într-o fișier cu extensia c... De obicei, fișierele header și fișierele de punere în aplicare merg mână în mână, așa că, dacă ați declarat o grămadă de sir nou funcții în mystring.h, atunci veți defini toate aceste funcții în mystring c... Deci, atunci fișierele antet și punerea în aplicare sunt apoi compilat, crearea de fișiere obiect care sunt apoi legate de împreună pentru a produce fișierul bibliotecă binar. Scriitorul Biblioteca va fi livrat apoi fișierul binar de-a lungul cu fișierele antet pentru programatorii care doresc să utilizeze bibliotecă. În acest moment, c fișierele. Punere în aplicare nu sunt necesare, cu excepția recompilați biblioteca de la zero, astfel încât acestea sunt de multe ori lăsat pe dinafară. Pentru a utiliza biblioteca C, ce trebuie să faci două lucruri. În primul rând, trebuie să includeți # fișierele bibliotecii antet și Cod fișierul sursă în cazul în care doriți să utilizați biblioteca de cod. Aceasta informează compilatorul a tuturor declarațiilor de funcții, variabile, struct, et cetera, prezente în fișiere antet, astfel încât compilatorul se poate, să asigure că te folosind resursele bibliotecii în mod corect, și doi, generează codul de asamblare corespunzător. În funcție de locul în care fișierele bibliotecii antet sunt localizat, sintaxa # include variază. În cazul în care fișierele antet se află în sistemul de implicit includ Director - de obicei, usr/include-- apoi unghiul de paranteze sintaxa este folosit, la fel ca în # include . Cu toate acestea, în cazul în care fișierele antet sunt situate în același director ca propriul cod, sintaxa citat dublu este folosit, la fel ca în # include "mylib.h". Al doilea lucru ce trebuie sa faci este de a conecta în binar Biblioteca de fișier atunci când compilați codul. Acesta este un pas foarte important. Amintiți-vă discuția noastră anterioară despre modul în antet Fișierele nu contin codul de punere în aplicare? Dacă uitați acest pas, veți obține erori cu privire la simboluri nedefinite referire în codul dumneavoastră. Pentru a rezolva acest lucru, utilizați-l de pavilion urmat imediat fără un spațiu de numele bibliotecii. Pe multe sisteme, inclusiv aparatul, Standard C Bibliotecile sunt legate în mod automat pentru tine. Cu toate acestea, biblioteca matematica este uneori pachet separat și ar putea avea nevoie să fie legat cu-LM. Pe aparatul, avem grija de asta pentru tine, și am, de asemenea, link-ul bibliotecii CS50 cu-lcs50. Puteți vedea toate astea pe aparat atunci când rulați face. Acum ar trebui să aveți cunoștințe care aveți nevoie pentru a utiliza biblioteci din C. Distrați-vă explorând. Numele meu este Nate Hardison, iar acest lucru este CS50.