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