[Powered by Google Translate] Nate Hardison: A programozás, a könyvtár gyűjteménye kapcsolódó előre megírt kódot. A könyvtárak hogyan, mivel programozók, közösek és Hasznosnak kód egymással, a különböző programok között levelet, és még a különböző folyamatokat futó Ugyanakkor a mi számítógépek. Fedezzük fel egy kicsit. Az egyik közös feladatokat, amit valószínűleg használ a printf függvény. Most printf nem valami mágikus funkciója, hogy a már kódolva a számítógép - igen, ez része a C Standard könyvtárak, amelyek gyűjteménye funkciók jön a C programozási nyelv. Mivel a printf nem épül be a számítógépbe, azt jelenti, hogy volt némi programozó, aki valóban elment, és írta a printf függvény és a mellékelt azt a többi szabvány könyvtárakat, hogy a jövőben a programozók nem kellene példányban az erőfeszítést. És biztosak vagyunk benne, hogy hálás, hogy ez a helyzet, mert a megtekintéséhez , mennyi-kód valójában ahhoz, hogy végre printf. A C Standard könyvtárak, amelynek printf része, a az egyik legfontosabb eszközöket tekintette kezelésében CS50. Amellett, hogy a bemenet-kimenet könyvtár ahol printf él, van egy csomó más könyvtárak akkor valószínűleg használni folyamán CS50. Így például, a húr könyvtári funkciókkal kell összehasonlítani C vonósok, kap a hossza, és összefűzi őket. És a matematikai könyvtárat ad hasznos állandók, mint a pi és e. Most, összehasonlítva a szabványos könyvtárakat más programozási nyelvek, a C Standard könyvtárak nagyon kicsi, de még mindig jelentős mennyiségű cucc. És ez még nem jelenti azt, hogy a szabvány könyvtárak a Csak a C könyvtárak, ott sokkal több kint a világ használatát, beleértve a CS50 Könyvtár, térképészet könyvtárak titkosítás és dekódolás függvények, könyvtárak funkciók kódolására és lejátszani videó, és így tovább. Ez elvezet minket egy fontos félre. Az egyik alapvető készségek műszaki ismerete, hogy a rendelkezésre álló eszközöket a toolbox, hogy tudod használni őket, és elkerülni újra feltalálja a kereket, kivéve, ha meg kell tenni. Mint programozók, könyvtárak az egyik legfontosabb eszközökkel van. Ha szembe találja magát olyan feladat, amely úgy tűnik, unalmas, vagy közhely, mint megtalálni a hossza C string, akkor kérdezd meg magadtól, ha ez az eset állhat fenn, hogy a valaki már megtette ugyanezt előtt. Esélye van, hogy Ön is talál néhány Segítse egy könyvtár. Tehát technikai értelemben, a könyvtár egy bináris fájl, amely állítottak elő összekapcsolásával gyűjteménye objektum fájlok nevű eszközt, akkor kitalálta, akkor a linker. Object fájlok azok. O fájlokat kapunk, ha fordítsd C forráskódot. Amikor a programozók levelet könyvtárak, jellemzően szelektív C kód két típusú fájlokat: header fájlokat és végrehajtás fájlokat. A header fájlt megegyezés kap a. H fájl kiterjesztését, és kódot tartalmaz, amely deklarálja a könyvtár erőforrások rendelkezésre állnak az Ön használni. Ezek a források közé tartozik függvények, változók, struktúrákat, típus meghatározások, és így tovább, és együtt, ezek közkeletű nevén a felület. Tény, hogy ha valaha is kíváncsi, mi van a könyvtár, A fejléc fájlok a hely, hogy vizsgálja meg. Például, akkor húzza fel usr / include / stdio.h és bejelentkezés ki mindent, amit valaha is akartam tudni a standard io könyvtár. Van egy csomó dolog van itt, és ez eltarthat egy kis ideje, hogy gázol keresztül. Azonban, valamint a Google és a man oldalak, ez a hely, hogy menjen, ha kíváncsiak vagytok, hogy a standard I / O könyvtári funkciók működnek. Tehát az egyik legfontosabb dolog megjegyezni azonban, hogy a header fájlok általában nem tartalmaznak függvénydefiníciókat - azaz, a tényleges függvény megvalósítások. Ez rávilágít egy fontos számítástechnika elvének nevezett információ rejtőzik is pontban említett ahányszor encapsulation. Mivel a felhasználó vagy az ügyfél egy könyvtár, akkor nem kell tudni a belső a könyvtár kötelezze használni. Emlékezzen látta printf csak egy kicsit ezelőtt? Vajon valaha látott maga a kód előtt? Nos, feltételezem, hogy nem, még ha esetleg használták printf tonna alkalommal. Minden, amit tudni kellett feladata volt jelen nyilatkozat A stdio.h header fájlt. Különben is, a haszon jó információ rejtőzik az, hogy és a programokat írsz szigeteltek bármely változás A kód végrehajtásának könyvtári funkciókat. Amennyiben végrehajtása printf változások, akkor nem kell menni, és módosíthatja az összes használó programok printf. Szóval, ha nem megy végrehajtás? Nos, ismét, megállapodás szerint, a végrehajtási megy a fájlt. ac fájl kiterjesztését. Általában header fájlokat és végrehajtási fájlokat kéz a kezében, így ha már bejelentett egy csomó új string funkciók mystring.h, akkor lesz meg az összes ezeket a funkciókat a mystring. c. Tehát akkor a fejléc és végrehajtásának fájlok ezután összeállítani, ami objektum fájlok ezután kapcsolódik együtt a könyvtár a bináris fájlt. A könyvtár író ekkor a hajó a bináris fájl mentén A fejléc fájlokat a programozók, akik a használni kívánt a könyvtár. Ezen a ponton, a. C végrehajtás fájlok nem szükséges, kivéve újrafordítani a könyvtár a semmiből, így a ők gyakran kihagyják. Ahhoz, hogy a C könyvtár, akkor két dolgot. Először is meg kell # include a könyvtár header fájlokat és a forráskód fájl, ahol a használni kívánt a könyvtár kódot. Ez tájékoztatja a fordító az összes nyilatkozatok függvények, változók, struktúrákat, satöbbi, jelen van a header fájlokat, oly módon, hogy a fordító egy, biztosítja, hogy Ön a könyvtár erőforrásainak megfelelő módon, és két generálni a megfelelő assembly kóddal. Attól függően, hogy a könyvtár header fájlok található, az # include szintaxis változik. Ha a header fájlok találhatók a rendszer alapértelmezett include könyvtárban - jellemzően usr/include-- akkor a szögletes zárójelek szintaxist használják, mint a # include . Azonban, ha a fejléc fájlok találhatók az ugyanazon könyvtár, mint a saját kóddal, idézőjel szintaxis használják, mint a # include "mylib.h". A második dolog, amit meg kell tennie, hogy kapcsolja a bináris könyvtárfájlt amikor fordítod a kódot. Ez egy szuper fontos lépés. Ne feledje, a korábbi vitát arról, hogy miként header fájlok nem tartalmaznak végrehajtási kódot? Ha elfelejtette ezt a lépést, kapsz hibák mintegy nem definiált szimbólumok hivatkozott kódot. Ennek kiküszöbölésére használd a-l flag majd azonnal szóköz nélkül a neve a könyvtár. Sok rendszerek, beleértve a készüléket, a C Standard A könyvtárak automatikusan kapcsolódnak az Ön számára. Ugyanakkor a matematikai könyvtár néha külön csomagban és talán össze kell kapcsolni a-lm. A készüléket, mi gondoskodunk e az Ön számára, és mi is összekapcsolják a CS50 könyvtár-lcs50. Láthatjuk az összes ezt a készüléket, ha fut tenni. Most már a tudás, akkor kell használni könyvtárak C. Szórakozz felfedezéséhez. A nevem Nate Hardison, és ez CS50.