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