[Powered by Google Translate] Nate Hardison: V programovanie, knižnica je zbierka
súvisiace prewritten kód.
Knižnice sú, ako sme ako programátori, zdieľať spoločné a
užitočné kód so sebou, s rôznymi programami sme
písať, a dokonca s rôznymi procesy bežiace na
rovnaký čas na našich počítačoch.
>> Poďme preskúmať trochu.
Jeden z viacerých spoločných funkcií, ktoré ste pravdepodobne
Používam je printf funkcie.
Teraz, printf nie je nejaký mágie funkcia, ktorá je už
pevne do počítača -
skôr, že je to časť C knižníc Standard, ktoré sú
zbierka funkcií, ktoré prichádza s
C programovací jazyk.
Vzhľadom k tomu, printf nie je zabudovaná do počítača, ktorý znamená, že
tam bola nejaká programátor, ktorý skutočne išiel a napísal
printf funkcie a zviazaný ju so zvyškom normy
knižnice tak, aby budúce programátori by nemusel
duplicitné úsilie.
A sme si istí, vďačný, že je to tento prípad, pretože skontrolujte
, Koľko kód to vlastne trvá realizovať printf.
>> Symbol c Štandardné knižnice, z ktorých printf je súčasťou, sú
jedným z najdôležitejších nástrojov, ktoré
majú v boji proti CS50.
Okrem vstupov a výstupov knižnice, kde
printf životy, existuje množstvo ďalších knižníc, ktoré
budete pravdepodobne používať cez beh CS50.
Napríklad, reťazec knižnica funkcií
nákupný C reťazcov, získať ich dĺžku, a zreťaziť je.
A matematická knižnica vám dáva užitočné
konštanty, ako je pani a e
Teraz, v porovnaní so štandardnými knižnicami iných programov
jazyku, pričom C Štandardné knižnice sú naozaj malé,
ale stále majú veľké množstvo vecí.
A to neznamená, že štandardné knižnice sú
iba C knižnice, existuje mnoho viac vonku v
svet pre vás na použitie, vrátane CS50 knižnice,
kartografie knižnice s šifrovanie a dešifrovanie
funkcie, knižnice s funkciami pre kódovanie a
prehrávať video, a tak ďalej.
>> To nás privádza k dôležitým stranou.
Jednou zo základných zručností inžinierstva je s vedomím, že
dostupné nástroje v paneli nástrojov, takže môžete použiť
je a vyhnúť objavovanie Ameriky, ak
musíte tak urobiť.
Ako programátori, knižnice sú jedným z najdôležitejších
nástroje, ktoré majú.
Keď sa ocitnete tvárou v tvár úlohy, ktorá sa zdá nudné, alebo
samozrejmosťou, ako keď sa dĺžka reťazca C, vy
Spýtajte sa sami seba, či by to mohlo byť v prípade, že
niekto už urobil rovnakú vec pred.
Šanca je, že by ste mohli nájsť niektoré
pomoc v knižnici.
>> Takže z technického hľadiska, knižnica je binárny súbor, ktorý
bola vyrobená prepojením zbierku
objektové súbory pomocou nástroja nazýva, si
Uhádli ste, je linker.
Objekt súbory sú. O súbory, ktoré dostanete, keď budete
kompiláciu C zdrojový kód.
Keď programátori píšu knižnice, ktoré zvyčajne
oddeliť ich kód v C do dvoch typov súborov:
hlavičkové súbory a implementácia súbory.
Hlavičkový súbor konvencií je daná. H príponu súboru,
a obsahuje kód, ktorý prehlasuje, knižnica je
zdroje, ktoré sú k dispozícii pre vás na použitie.
Tieto zdroje zahŕňajú funkcie, premenné, štruktúr,
typ definície, a tak ďalej, a spoločne, sú
obyčajne odvolával sa na ako rozhranie.
V skutočnosti, ak ste niekedy premýšľal, čo je v knižnici,
hlavičkové súbory sú miestom, kde hľadať.
>> Napríklad, môžete vytiahnuť až usr / include / stdio.h a skontrolujte
si všetko čo ste kedy chceli vedieť o
štandardné aj o knižnice.
Je tu veľa vecí, v tú, a to môže trvať trochu
čas prehrýzť.
Avšak, spolu s firmou Google a manuálové stránky, to je
miesto, kam ísť, ak ste zvedaví, ako štandardné I / O
knižničný funkcie pracujú.
Takže jeden kľúč vec k poznámke, však je, že hlavičkové súbory
zvyčajne nezahŕňajú definície funkcií -
to znamená, že skutočné funkcie implementácie.
To je ilustrácia významného informatiky
Princíp tzv skrývanie informácií, tiež odvolával sa na v
krát zapuzdrenie.
>> Ako užívateľ alebo klient o knižnice, budete nemusíte
vedieť o vnútra knižnice v
Aby bolo možné použiť ju.
Nezabudnite vidieť printf len trochu pred?
Keby ste niekedy videli skutočný kód pred?
No, predpokladám, že nemáte, aj keď si možno
boli použité printf ton časov.
Všetko, čo musel vedieť, bolo, Deklarácia funkcie súčasnej
v stdio.h hlavičke súboru.
Každopádne, výhoda dobrého skrývanie informácií je to, že
a programy, ktoré napísať sú izolované od akýchkoľvek zmien v
kód implementácia knižnice funkcií.
Ak implementácia printf zmien, nemáte
ísť a zmeniť všetky programy, ktoré používajú printf.
>> Takže tam, kde sa realizácia ísť?
No, opäť, podľa konvencie, implementácia ide do
súbor s príponou. súboru c
Obvykle, hlavičkové súbory a implementácia súbory idú ruku
v ruke, takže ak ste vyhlásil veľa nového reťazca
funkcie v mystring.h, potom budete definovať všetky
tieto funkcie v MyString. c.
Takže hlavičkové a realizácia súbory sú potom
zostavený, vytvárať objektové súbory, ktoré sú potom spojené
spoločne produkovať binárny súbor knižnice.
Knižnica spisovateľ potom loď binárny súbor pozdĺž
s hlavičkových súborov na programátorov, ktorí chcú využiť
knižnica.
V tomto bode sa. C Prevedenie súbory nie sú
potreba, s výnimkou prekompilovať knižnicu od nuly, takže
oni často vynecháva.
>> Ak chcete použiť knižnicu C, musíte urobiť dve veci.
Po prvé, musíte # include knižnice a hlavičkové súbory na
Zdrojový kód súboru, kde chcete použiť
knižnice kódu.
To informuje kompilátor všetkých vyhlásenie o
funkcie, premenné, štruktúr, et cetera, prítomné v
hlavičkové súbory, takže kompilátor môže jeden, sa uistili, že
ste pomocou knižnice zdroje správnym spôsobom,
a za druhé, generovať zodpovedajúci kód assembleri.
V závislosti na tom, kde sa knižnica je hlavičkové súbory sú
nachádza, # include syntaxe sa líšia.
Ak hlavičkové súbory sú umiestnené v systéme je
Predvolený obsahovať adresár -
typicky, usr/include--
potom uhol zátvorky syntaxe je použitá, ako v # zahŕňajú
.
Avšak, v prípade, že hlavičkové súbory sú umiestnené v rovnakej
adresár ako vlastný kód, úvodzovky syntax je
používaný, ako v # zahŕňajú "mylib.h".
>> Druhá vec, ktorú musíte urobiť, je spojiť v binárnom
Súbor knižnice pri kompilácii kódu.
To je super dôležitý krok.
Pamätáš sa na naše skoršie diskusiu o tom, ako hlavička
Súbory neobsahujú implementácia kód?
Ak ste zabudli tento krok, budete sa chyby o
nedefinované symboly uvedenú v kóde.
Ak chcete vyriešiť tento problém, použite-l bezprostredne nasleduje
bez priestoru podľa názvu knižnice.
Na mnohých systémoch, vrátane zariadenia, C Štandardné
Knižnice sú automaticky prepojené pre vás.
Avšak, je matematická knižnica niekedy zviazaný samostatne
a mohla by byť spojená s-lm.
Na zariadenia, my sa postaráme o to pre vás, a tiež
odkaz na CS50 knižnicu-lcs50.
Môžete vidieť všetko na prístroji pri spustení vykonať.
>> Teraz by ste mali mať znalosti, ktoré potrebujete na používanie
knižnice v C. Dobre sa bavte.
Moje meno je Nate Hardison, a to je CS50.