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