[Powered by Google Translate] Nate HARDISON: Sa programming, library ay isang koleksyon ng mga kaugnay prewritten code. Mga Aklatan ay kung paano namin, bilang programmer, ibahagi karaniwang at kapaki-pakinabang na code sa bawat isa, na may iba't ibang mga program namin magsulat, at kahit na ang iba't ibang mga proseso na tumatakbo sa sa parehong oras sa aming mga computer. Tuklasin natin ng kaunti. Isa ng mas karaniwang mga function na malamang na ginagamit ang printf function na. Ngayon, printf ay hindi ilang mga magic function na naging hard-code sa computer - sa halip, ito ay bahagi ng C Standard Aklatan, na isang koleksyon ng mga function na may C programming language. Dahil printf ay hindi binuo sa computer, na nangangahulugan na ang nagkaroon ng ilang mga programmer na aktwal na nagpunta sa at sinulat ni ang printf function at bundle na ito sa mga natitira sa mga karaniwang aklatan upang ang hinaharap programmer hindi mag- duplicate ang pagsusumikap. At sigurado kami nagpapasalamat na iyon ang kaso, dahil check out kung magkano ang code na ito aktwal na tumatagal ipatupad printf. Ang C Standard Aklatan, kung saan printf ay isang bahagi, ay isa ng ang pinaka-mahalagang mga tool na sa tackling CS50. Bilang karagdagan sa input-output library kung saan printf buhay, may mga ng grupo ng mga iba pang mga library na malamang gamitin sa kabuuan ng CS50. Halimbawa, ang string library ay may mga function sa ihambing ang string C, ang kanilang haba, at pagdugtungin ang mga ito. At ang matematika library ay nagbibigay sa iyo ng kapaki-pakinabang na constants, tulad ng pay at e. Ngayon, kumpara sa karaniwang aklatan ng iba pang mga programming wika, ang C Standard Aklatan ay talagang maliit, ngunit sila pa rin magkaroon ng isang makabuluhang halaga ng mga bagay-bagay. At ang hindi upang sabihin na ang Standard Aklatan ay ang lamang C library, may mga maraming iba pang mga out doon sa mundo para sa iyo na gamitin, kabilang ang CS50 Library, kartograpya ng mga aklatan na may encryption at decryption pagpapaandar, mga aklatan na may mga function upang i-encode at muling i-play ang video, at iba pa. Pinagsasama-amin sa isang mahalagang bukod. Ang isa sa mga mahahalagang kasanayan ng engineering ay alam ang tool na magagamit sa iyong toolbox sa gayon ay maaari mong gamitin ang mga ito at maiwasan ang reinventing ang wheel maliban kung mayroon ka na gawin ito. Bilang programmer, ang mga aklatan ay isa sa mga pinakamahalagang tool na mayroon kami. Kapag nahanap mo ang iyong sarili nakaharap ng isang gawain na mukhang nakakapagod o pangkaraniwan, tulad ng paghahanap ng haba ng isang string ng C, dapat itanong sa iyong sarili kung maaaring ito ay ang kaso na may pa nagagawa ang parehong bagay bago. Malamang na maaari mong mahanap ang ilang mga tulong sa loob ng library. Kaya sa mga teknikal na mga tuntunin, ang library ng isang binary file na ay ginawa sa pamamagitan ng pag-link nang sama-sama ng isang koleksyon ng mga bagay file gamit ang isang tool na tinatawag na, nahulaan mo, ang linker. Bagay file ay ang mga o file na makakakuha ka kapag ikaw ay makatipon C source code. Kapag ang mga programmer sumulat aklatan, karaniwang sila paghiwalayin ang kanilang C code sa dalawang mga uri ng mga file: header file at pagpapatupad ng mga file. Isang file ng header sa pamamagitan ng convention ay ibinigay sa. H file extension, at ito ay naglalaman ng code na declares sa library mga mapagkukunan na magagamit para sa iyo upang gamitin ang. Mga mapagkukunan na ito ay kinabibilangan ng mga function, variable, structs, kahulugan ng uri, at iba pa, at magkasama, ang mga ito ay karaniwang tinutukoy bilang ang interface. Sa katunayan, kung sakaling ikaw ay nagtataka kung ano ang sa isang library, header file ay ang lugar upang tumingin. Halimbawa, maaari mong makuha ang usr / isama / stdio.h at suriin out lahat mo kailanman nais malaman tungkol sa ang standard IO library. May ng maraming mga bagay-bagay in dito, at maaari itong tumagal ng kaunting oras sa Wade sa pamamagitan ng. Gayunpaman, kasama ang Google at ang mga manpages, ito ay ang ilagay pumunta kung ikaw ay nagtataka kung paano ang standard I / O library function gumagana. Kaya isang key bagay upang tandaan dito, bagaman, ay na header file karaniwang hindi isama ang mga kahulugan ng function na - iyon ay, ang aktwal na pagpapatupad ng function na. Ito ay isang paglalarawan ng isang mahalagang computer na agham prinsipyo na tinatawag na impormasyon nagtatago, din tinutukoy sa beses na mas encapsulation. Bilang ng gumagamit o ang client ng isang library, hindi mo kailangang mag- malaman tungkol sa internals ng library sa -order upang gamitin ito. Tandaan nakikita printf ng kaunti lamang ang nakalipas? Ay ka kailanman nakita ang aktwal na code bago? Well, ipinapalagay ko na mayroon kang hindi, kahit na maaari kang na gumamit ng printf ton ng beses. Lahat ng iyong ay malaman ang kasalukuyan ng deklarasyon ng function na sa stdio.h header ng file. Pa rin, ang benepisyo ng magandang impormasyon nagtatago na at ang mga programa na magsulat insulated mula sa anumang mga pagbabago sa code ng pagpapatupad ng mga function ng library. Kung ang pagpapatupad ng printf pagbabago, hindi mo na kailangang upang pumunta at baguhin ang lahat ng iyong mga programa na gumagamit ng printf. Kaya kung saan ay ang pagpapatupad pumunta? Well, muli, sa pamamagitan ng convention, pagpapatupad napupunta sa isang file na may. c file extension. Karaniwan, ang mga file ng header at pagpapatupad ng mga file pumunta kamay sa banda, kaya kung mo na ang ipinahayag ng isang grupo ng mga bagong string function sa mystring.h, pagkatapos makikita mo tukuyin ang lahat ng mga function sa mystring. c. Kaya ang header at pagpapatupad ng mga file ay pagkatapos pinagsama-sama, sa paglikha ng mga file sa bagay na ay naka-link nang sama-sama upang makabuo ng binary file library. Sa library ng manunulat ay nagpapadala binary file sa kahabaan sa ang mga file na header sa mga programmer na gusto mong gamitin sa aklatan. Sa puntong ito, ang. C pagpapatupad file ay hindi kinakailangan, maliban sa mag-recompile ang library mula sa simula, kaya kadalas sila pakaliwa out. Upang gamitin ang C library, kailangan mong gawin ang dalawang bagay. Una, kailangan mong # isama ang mga file ng header ang library at ang source code file na kung saan nais mong gamitin code ng library. Ito informs tagatala ng lahat ng mga pagdeklara ng andar, variable, structs, at iba pa, sa file header upang ang tagatala sa isa, insure na gumagamit ka ng mga mapagkukunan ng library sa tamang paraan, at dalawang, bumuo ng ang naaangkop na code ng pagpupulong. Depende sa kung saan ang mga file ng header sa library kinalalagyan, # include syntax ay nag-iiba-iba. Kung ang mga file ng header ay matatagpuan sa system default na isama direktoryo - karaniwan, usr/include-- ang anggulo bracket syntax ay ginagamit, sa # isama . Gayunpaman, kung ang mga file ng header ay matatagpuan sa parehong direktoryo bilang iyong sariling code, ang double quote syntax ginamit, tulad ng sa # include "mylib.h". Ang ikalawang bagay na kailangan mong gawin ay i-link sa binary library file kapag ikaw makatipon iyong code. Ito ay isang napaka-mahalagang hakbang. Tandaan ang aming mas maaga na talakayan tungkol sa kung paano header mga file ay hindi naglalaman ng pagpapatupad code? Kung nakalimutan mo ang hakbang na ito, makakakuha ka ng error tungkol sa hindi natukoy na simbolo-reference sa iyong code. Upang malutas ito, gamitin ang-l-flag sinundan agad walang puwang sa pamamagitan ng ang pangalan ng library. Sa maraming mga sistema, kabilang ang appliance, ang C Standard Mga Aklatan ay awtomatikong naka-link para sa iyo. Gayunpaman, ang matematika library minsan bundle hiwalay at maaaring kailangan na naka-link sa may-lm. Sa appliance, alang namin ang pag-aalaga ng mga ito para sa iyo, at din namin link ang CS50 library may-lcs50. Maaari mong makita ang lahat ng ito sa appliance na kapag nagpatakbo ka gumawa. Ngayon dapat mong magkaroon ng kaalaman na kailangan mong gumamit aklatan sa C. Maglibang sa pagsisiyasat. Ang pangalan ko ay Nate Hardison, at ito ay CS50.