[Powered by Google Translate] NATE Hardison: V programování, knihovna je sbírka
související prewritten kód.
Knihovny jsou, jak jsme jako programátoři, sdílet společné a
užitečné kód s sebou, s různými programy jsme
psát, a dokonce s různými procesy běžící na
stejný čas na našich počítačích.
>> Pojďme prozkoumat trochu.
Jeden z více společných funkcí, které jste pravděpodobně
Používám je printf funkce.
Nyní, printf není nějaký magie funkce, která je již
pevně do počítače -
spíše, že je to část C knihoven Standard, které jsou
sbírka funkcí, které přichází s
C programovací jazyk.
Vzhledem k tomu, printf není zabudována do počítače, který znamená, že
tam byla nějaká programátor, který skutečně šel a napsal
printf funkce a svázaný ji se zbytkem normy
knihovny tak, aby budoucí programátoři by nemusel
duplicitní úsilí.
A jsme si jisti, vděčný, že je to tento případ, protože zkontrolujte
, kolik kód to vlastně trvá realizovat printf.
>> Symbol c Standardní knihovny, z nichž printf je součástí, jsou
jedním z nejdůležitějších nástrojů, které
mají v boji proti CS50.
Kromě vstupů a výstupů knihovny, kde
printf životy, existuje spoustu dalších knihoven, které
budete pravděpodobně používat přes běh CS50.
Například, řetězec knihovna funkcí
porovnání C řetězců, získat jejich délku, a zřetězit je.
A matematická knihovna vám dává užitečné
konstanty, jako je pí a e.
Nyní, ve srovnání se standardními knihovnami jiných programů
jazyce, přičemž C Standardní knihovny jsou opravdu malé,
ale stále mají velké množství věcí.
A to neznamená, že standardní knihovny jsou
pouze C knihovny, existuje mnoho víc venku v
svět pro vás k použití, včetně CS50 knihovny,
kartografie knihovny s šifrování a dešifrování
funkce, knihovny s funkcemi pro enkódování a
přehrávat video, a tak dále.
>> To nás přivádí k důležitým stranou.
Jednou ze základních dovedností inženýrství je s vědomím, že
dostupné nástroje v panelu nástrojů, takže můžete použít
je a vyhnout objevování Ameriky, pokud
musíte tak učinit.
Jako programátoři, knihovny jsou jedním z nejdůležitějších
nástroje, které mají.
Když se ocitnete tváří v tvář úkolu, který se zdá nudné, nebo
samozřejmostí, jako když se délka řetězce C, vy
zeptejte se sami sebe, zda to může být případ, že
někdo už udělal stejnou věc před.
Šance je, že byste mohli najít některé
pomoc v knihovně.
>> Takže z technického hlediska, knihovna je binární soubor, který
byla vyrobena propojením sbírku
objektové soubory pomocí nástroje nazývá, si
Uhodli jste, linker.
Objekt soubory jsou. O soubory, které dostanete, když budete
kompilaci C zdrojový kód.
Když programátoři píší knihovny, které obvykle
oddělit jejich kód v C do dvou typů souborů:
hlavičkové soubory a implementace soubory.
Hlavičkový soubor konvencí je dána. H příponu souboru,
a obsahuje kód, který prohlašuje, knihovna je
zdroje, které jsou k dispozici pro vás k použití.
Tyto zdroje zahrnují funkce, proměnné, struktur,
typ definice, a tak dále, a společně, jsou
obyčejně odkazoval se na jako rozhraní.
Ve skutečnosti, pokud jste někdy přemýšlel, co je v knihovně,
hlavičkové soubory jsou místem, kde hledat.
>> Například, můžete vytáhnout až usr / include / stdio.h a zkontrolujte
si vše co jste kdy chtěli vědět o
standardní io knihovny.
Je tu spousta věcí, v tu, a to může trvat trochu
čas prokousat.
Nicméně, spolu s firmou Google a manuálové stránky, to je
místo, kam jít, pokud jste zvědaví, jak standardní I / O
knihovní funkce pracují.
Takže jeden klíč věc k poznámce, však je, že hlavičkové soubory
obvykle nezahrnují definice funkcí -
to znamená, že skutečné funkce implementace.
To je ilustrace významného informatiky
Princip tzv. skrývání informací, také odkazoval se na v
krát zapouzdření.
>> Jako uživatel nebo klient o knihovny, budete nemusíte
vědět o vnitřku knihovny v
Aby bylo možné použít ji.
Nezapomeňte vidět printf jen trochu před?
Kdyby jste někdy viděli skutečný kód před?
No, předpokládám, že nemáte, i když si možná
byly použity printf tun časů.
Vše, co musel vědět, byla funkce prohlášení současné
v stdio.h záhlaví souboru.
Každopádně, výhoda dobrého skrývání informací je to, že
a programy, které napsat jsou izolovány od jakýchkoli změn v
kód implementace knihovny funkcí.
Pokud implementace printf změn, nemáte
jít a změnit všechny programy, které používají printf.
>> Takže tam, kde se realizace jít?
No, opět, podle konvence, implementace jde do
soubor s příponou. souboru c.
Obvykle, hlavičkové soubory a implementace soubory jdou ruku
v ruce, takže pokud jste prohlásil spoustu nového řetězce
funkce v mystring.h, pak budete definovat všechny
tyto funkce v MyString. c..
Takže hlavičkové a realizace soubory jsou pak
sestaven, vytvářet objektové soubory, které jsou pak spojeny
společně produkovat binární soubor knihovny.
Knihovna spisovatel pak loď binární soubor podél
s hlavičkových souborů na programátory, kteří chtějí využít
knihovna.
V tomto bodě se. C Provedení soubory nejsou
potřeba, s výjimkou překompilovat knihovnu od nuly, takže
oni často vynechává.
>> Chcete-li použít knihovnu C, musíte udělat dvě věci.
Za prvé, musíte # include knihovny hlavičkové soubory a
Zdrojový kód souboru, kde chcete použít
knihovny kódu.
To informuje kompilátor všech prohlášení o
funkce, proměnné, struktur, et cetera, přítomné v
hlavičkové soubory, takže kompilátor může jeden, se ujistili, že
jste pomocí knihovny zdroje správným způsobem,
a za druhé, generovat odpovídající kód assembleru.
V závislosti na tom, kde se knihovna je hlavičkové soubory jsou
nachází, # include syntaxe se liší.
Pokud hlavičkové soubory jsou umístěny v systému je
Výchozí obsahovat adresář -
typicky, usr/include--
pak úhel závorky syntaxe je použita, jak v # zahrnují
.
Nicméně, v případě, že hlavičkové soubory jsou umístěny ve stejné
adresář jako vlastní kód, dvojité citace syntaxe je
používán, jak v # zahrnují "mylib.h".
>> Druhá věc, kterou musíte udělat, je spojit v binárním
Soubor knihovny při kompilaci kódu.
To je super důležitý krok.
Pamatuješ se na naše dřívější diskusi o tom, jak hlavička
Soubory neobsahují implementace kód?
Pokud jste zapomněl tento krok, budete se chyby o
nedefinované symboly uvedenou v kódu.
K vyřešení tohoto problému, použijte-l bezprostředně následuje
bez prostoru podle názvu knihovny.
Na mnoha systémech, včetně zařízení, C Standardní
Knihovny jsou automaticky propojeny pro vás.
Nicméně, je matematická knihovna někdy svázaný samostatně
a mohla by být spojena s-lm.
Na zařízení, my se postaráme o to pro vás, a také
odkaz na CS50 knihovnu-lcs50.
Můžete vidět vše na přístroji při spuštění provést.
>> Nyní byste měli mít znalosti, které potřebujete k používání
knihovny v C. Dobře se bavte.
Mé jméno je Nate Hardison, a to je CS50.