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