[Powered by Google Translate] Nate HARDISON: programavimo, biblioteka yra kolekcija
susiję prewritten kodas.
Bibliotekos, kaip mes, programuotojai, dalintis bendrais ir
naudinga kodas vieni su kitais, su įvairių programų
rašyti ir net skirtingi procesai veikia
tuo pačiu metu mūsų kompiuterius.
>> Pažinkime šiek tiek.
Vienas iš labiausiai paplitusių funkcijas, kad jūs tikriausiai
printf funkcija naudoja.
Dabar printf nėra kažkokia magija funkcija, kad buvo
kietai "įsiūtos į kompiuterį -
o, tai C standartinės bibliotekos dalis, kurios yra
funkcijų rinkinys, kuris ateina su
C programavimo kalba.
Nuo printf nėra pastatytas į kompiuterį, tai reiškia, kad
ten buvo kai programuotojas, kuris iš tikrųjų nuėjo ir parašė
printf funkcija ir siejama su likusios standarto dalies sritis
bibliotekos, kad ateities programuotojai neturi
dubliuoti pastangas.
Ir mes tikrai dėkingas, kad tai toks atvejis, nes patikrinti
iš kiek kodas ji iš tikrųjų mano, kad įgyvendinti printf.
>> C standartinės bibliotekos, iš kurių printf yra dalis, yra
vienas iš svarbiausių įrankių, jums
turi kovojant su CS50.
Be to, į įvesties-išvesties bibliotekoje, kur
printf gyvena, yra krūva kitų bibliotekų
jūs tikriausiai naudoti per su CS50 kursą.
Pavyzdžiui, eilutė biblioteka yra funkcijos
palyginti C eilutes, gauti jų ilgį, ir Jungiant juos.
Ir matematikos biblioteka suteikia jums naudinga
konstantos, kaip pi ir e.
Dabar, palyginti su standartinėmis kitų programavimo bibliotekų
kalbos, C standartinės bibliotekos yra tikrai mažas,
bet jie vis dar turi didelį kiekį daiktų.
Ir tai dar ne pasakyti, kad standartinės bibliotekos
tik C bibliotekos, yra daug daugiau ten
pasaulyje, kuriuos galima naudoti, įskaitant CS50 bibliotekos,
kartografija bibliotekos su šifravimui ir iššifravimui
funkcijos, bibliotekos funkcijų, norint užkoduoti ir
atkurti vaizdo, ir taip toliau.
>> Tai duoda mums svarbu panaikinti.
Vienas iš esminių įgūdžių inžinerijos žinant
įrankių, savo priemonių rinkinį, kad būtų galima naudoti
ir neišradinėti dviračio, nebent
jūs turite padaryti.
Kaip programuotojai, bibliotekos yra vienas iš svarbiausių
įrankiai, mes turime.
Kai jums rasti sau susiduria užduotį, kuri, atrodo nuobodus arba
paplitę, kaip rasti ilgis C kalboje, jūs
turėtumėte užduoti sau, jei tai gali būti atvejis, kad
kažkas jau padarė tą patį anksčiau.
Yra tikimybė, kad jums gali rasti kai kurie
padėti per bibliotekoje.
>> Taigi, techniniu požiūriu, biblioteka yra dvejetainis failas, kuris
buvo pagamintas sujungiant kolekcija
objekto failus, naudodami įrankį, vadinamą, jūs
atspėjote, Linker.
Objekto failus o bylos, kad jūs gaunate, kai
sudaryti C šaltinio kodą.
Kai programuotojai rašyti bibliotekas, jie paprastai
atskirti savo C kodą į dviejų tipų failus:
header files ir įgyvendinimo failus.
Failo antraštės pagal susitarimą suteikiama h failo plėtinį,
ir jame kodą, kuris deklaruoja biblioteka
ištekliai, kurie yra prieinami jums naudoti.
Šie ištekliai apima funkcijas, kintamieji, structs,
tipo apibrėžimai, ir tt, ir kartu, jie yra
paprastai vadinama kaip sąsaja.
Iš tiesų, jei jūs kada nors įdomu, kas į biblioteką,
header files yra vieta ieškoti.
>> Pavyzdžiui, jūs galite atsigriebti usr / include / stdio.h ir patikrinkite
atlikti viską, ką kada nors norėjo žinoti apie
standartas io biblioteka.
Yra daug dalykų čia, ir tai gali užtrukti šiek tiek
laikas bristi per.
Tačiau, kartu su "Google" ir manpages, tai yra
vieta eiti, jei jums įdomu, kaip standartinis I / O
bibliotekos funkcijos veikia.
Taigi vienas pagrindinis dalykas, reikia pažymėti, nors tai, kad header files
paprastai neapima funkcijų apibrėžimus -
tai yra faktinis funkcija diegimas.
Tai svarbaus kompiuterių mokslo iliustracija
principas vadinamas informacijos slėpimą, taip pat vadinama ne
kartus hermetizuoti.
>> Vartotojo arba kliento bibliotekoje, jums nereikia
žinoti apie bibliotekos vidinės
jį naudoti.
Atsimenu, matau printf tik šiek tiek prieš?
Jeigu jūs kada nors matė faktinis kodas anksčiau?
Na, aš manau, kad jūs dar ne, nors galbūt
naudojo printf tonų kartų.
Viskas, ką turėjo žinoti funkcija deklaracija metu
į stdio.h antraštės faile.
Bet kokiu atveju, geros informacijos slapstytis nauda yra, kad jūs
ir programas, rašote yra izoliuoti nuo bet kokių pokyčių
kodas bibliotekos funkcijų įgyvendinimą.
Jei printf pokyčių įgyvendinimas, jūs neturite
eiti ir pakeisti visas savo programas, kurios naudoja printf.
>> Taigi, kur gi įgyvendinimas eiti?
Na, dar kartą, pagal susitarimą, kurio įgyvendinimas vyksta
failas su C failo plėtinys.
Paprastai header files ir įgyvendinimo failus eiti koja
vertus, todėl, jei jūs paskelbė naujos eilutės krūva
funkcijos mystring.h, tada jums apibrėžti visas
tie mystring funkcijos.
Taip, tada antraštės ir įgyvendinimo failai yra
parengta, sukurti objekto failus, tada susiję
kartu, siekiant parengti dvejetainis bibliotekos failą.
Biblioteka rašytojas laivų dvejetainis failas kartu
su header files programuotojų, kurie nori naudoti
biblioteka.
Šiuo metu, c įgyvendinimo failų nėra
reikia, išskyrus tuos atvejus, perkompiliuoti biblioteką nuo nulio, todėl
jie dažnai paliktas.
>> Naudotis C biblioteką, turite padaryti du dalykus.
Pirma, jums reikia # include bibliotekos antraščių failus ir
šaltinio kodas byla, kurioje norite naudoti
bibliotekos kodas.
Tai informuoja visų deklaracijų kompiliatorių
funkcijas, kintamuosius, structs ir tt, esančių
header files kad kompiliatorius gali, garantuoti, kad
jūs naudojate bibliotekos fondais tinkamu būdu,
ir du, generuoti atitinkamą surinkimo kodą.
Priklausomai nuo to, kur bibliotekos header files
įsikūręs # include sintaksė skiriasi.
Jei antraštės failai yra sistemos
numatytasis katalogas -
paprastai, usr/include--
tada laužtiniuose skliaustuose sintaksė yra naudojamas, kaip # yra
.
Tačiau, jei antraštės failai yra toje pačioje
katalogas kaip savo kodą, dvigubas kabutes sintaksė yra
, kaip # include "mylib.h".
>> Antras dalykas, ką jums reikia padaryti yra susieti dvejetainiai
bibliotekos failą, kai renka savo kodą.
Tai yra super svarbus žingsnis.
Prisiminti mūsų ankstesnę diskusiją apie tai, kaip antraštė
bylos nėra įgyvendinimo kodeksą?
, Jei pamirštumėte šį žingsnį, jūs gausite informaciją apie klaidas
undefined simboliai, nurodyti Jūsų kodas.
Norėdami išspręsti šią problemą, naudokite-l vėliava, po to iš karto
be, bibliotekos pavadinimu erdvėje.
Nuo daugelio sistemų, įskaitant prietaiso, C standarto
Bibliotekos automatiškai nuoroda į jį.
Tačiau matematikos biblioteka kartais siejama atskirai
ir gali tekti būti susieta su-LM.
Ant prietaiso, tai pasirūpinti už jus, ir mes taip pat
susieti CS50 biblioteką su lcs50.
Jūs galite pamatyti visa tai ant prietaiso, kai paleidžiate.
>> Dabar jūs turėtumėte turėti žinių jums reikia naudoti
bibliotekos C Baw, žiūrėdami.
Mano vardas yra Nate Hardison, ir tai yra CS50.