[Powered by Google Translate] Swyddogaethau yn rhannau o cod a ddefnyddir mewn rhaglen fwy
i gyflawni tasg benodol.
Maent yn cael eu elwir hefyd yn gweithdrefnau, is-reolweithiau, a subprograms,
gan eu bod mewn gwirionedd dim ond rhaglenni mini o fewn rhaglenni.
Hyd yn oed er efallai nad ydych wedi sylwi,
ydych yn sicr wedi defnyddio swyddogaethau sydd eisoes os ydych wedi rhaglennu yn C.
Pan fyddwch yn ysgrifennu stwff i'r sgrîn gan ddefnyddio printf,
rydych chi mewn gwirionedd yn defnyddio swyddogaeth o'r enw printf.
Yn yr un modd, GetInt a GetString maen nhw'n swyddogaethau sydd CS50 yn darparu ar eich cyfer chi.
Fel rhaglenwyr, rydym yn defnyddio swyddogaethau am nifer o resymau.
>> Cael swyddogaethau i gyflawni tasgau cyffredin fel ysgrifennu at y sgrîn
ac annog y defnyddiwr am fewnbwn yn arbed amser i ni wrth raglennu.
Does dim rhaid i ysgrifennu cod i wneud y pethau hynny yr un
gan eu bod nhw'n gwneud yn barod i ni.
Dyw hi ddim hyd yn oed yn angenrheidiol i ni i ddeall yn union sut y bydd y swyddogaethau yn gweithio'n fewnol.
Yn hytrach, rydym yn unig rhaid i ni wybod sut i ddefnyddio neu eu ffonio yn ein rhaglenni.
Mae hefyd yn ddefnyddiol i ysgrifennu swyddogaethau mewn rhaglenni mwy
hyd yn oed os nad ydych yn bwriadu ar gael eraill yn eu defnyddio,
dim ond er mwyn rhannu'r dasg llawer ehangach wrth law.
Mae hyn yn ffordd, byddwch yn rhoi strwythur i'ch cod yn debyg y byddech yn rhoi strwythur i'r traethawd,
a chyda phrosiectau fawr iawn eich bod yn galluogi pobl lluosog
i weithio ar rannau gwahanol ar yr un pryd
gan ei fod yn glir lle mae gwaith un person yn dod i ben ac un arall yn dechrau.
>> Swyddogaethau fel arfer yn gweithredu ar 1 neu fwy o fewnbynnau, a elwir yn dadleuon neu baramedrau,
trawsnewid y mewnbwn i'r gwerth allbwn sy'n cael ei ddychwelyd wedyn.
Fodd bynnag, mae hefyd yn bosibl i fod â swyddogaethau nad ydynt yn defnyddio unrhyw ddadleuon mewnbwn
ac nid ydynt yn dychwelyd allbwn.
Iawn, digon gyda'r stwff blewog.
Gadewch i ni edrych ar rai swyddogaethau go iawn yn C.
>> Yma mae gennym swyddogaeth a elwir yn cysoni hynny, credwch neu beidio,
computes y sgwâr y mewnbwn.
Gadewch i ni dorri drwy'r cystrawen ohono.
Y gair cyntaf a welwch yn y swyddogaeth, int,
yn nodi'r math dychwelyd y swyddogaeth, hynny yw, y math C o allbwn y swyddogaeth yn.
Bydd y swyddogaeth hon allbynnu gwerth gyda int fath.
Y gair nesaf y byddwch yn gweld yw'r enw ar y swyddogaeth, sgwâr yn yr achos hwn.
Enwi swyddogaethau yn briodol yn arbennig o bwysig
gan ei fod yn debyg y ddogfennaeth fwyaf gweladwy o'r hyn y mae'r swyddogaeth yn ei wneud.
Gallai fod yn oer i enwi swyddogaeth hon neu shazam booyah,
ond ni fyddai hynny'n dweud rhywbeth wrthym am yr hyn y mae'r swyddogaeth yn ei wneud.
>> Yn dilyn yr enw swyddogaeth yn dod i'r mewnbynnau i'r swyddogaeth, y dadleuon.
Maent yn cael eu rhestru y tu mewn i set o cromfachau
gyda'r ddau eu math ac enw i'w defnyddio ar eu cyfer o fewn y corff y swyddogaeth.
Sgwâr yn cymryd dim ond 1 dadl, yr int yn y man,
yr wyf wedi penderfynu rhoi x enw.
Mae hyn yn dod i ben y datganiad swyddogaeth neu prototeip.
Mae'r braces cyrliog o gwmpas gweddill y swyddogaeth
dynodi dechrau a diwedd y corff swyddogaeth,
y diffiniad o swyddogaeth ei hun.
Sgwâr yn swyddogaeth eithaf syml.
Mae'n cael dim ond 1 llinell, gan fod yr holl rhaid i ni ei wneud yw lluosi x ei ben ei hun.
Mae'r ffurflen gair yn nodi'r gwerth allbwn a sbardunau diwedd y swyddogaeth.
I ddefnyddio'r swyddogaeth sgwâr, mae angen i gyflenwi y mewnbynnau priodol
ac yna dal yr allbwn.
Yma, byddwch yn gweld un neu ddau o ffyrdd o wneud hynny.
Gallwn drosglwyddo mewn int crai, fel 6, neu gallwn drosglwyddo mewn newidyn fel a.
Sylwer bod pob tro y byddwn yn galw sgwâr,
rydym yn dal yr allbwn mewn newidyn ac yna ei argraffu.
Fodd bynnag, nid oes gennym i storio gwerth dychwelyd mewn newidyn ac yna ei argraffu.
Gallai Rydym yn unig hanfon yn uniongyrchol i'r printf fel yr ydym yn ei wneud pan fyddwn yn sgwâr 10,
ond mae hyn yn golygu nad oes gennym fynediad at y gwerth dychwelyd sgwâr 10
mewn mannau eraill yn y cod.
Gadewch i ni edrych ar enghraifft arall syml.
>> Y tro hwn, byddwn yn crynhoi 2 fflotiau at ei gilydd fel y gallwn weld beth yw swyddogaeth yn edrych fel
pan mae'n cael 2 mewnbynnau yn hytrach na dim ond 1.
Fel y gallwch weld, nid yw'n wahanol iawn.
Mae pob rydym yn ei wneud yw ychwanegu yn y ddadl 2, fflôt a enwir b,
at y rhestr ddadl gan ddefnyddio coma i wahanu oddi wrth y ddadl gyntaf, arnofio a.
Felly, mae ein sgwâr a swyddogaethau swm yn eithaf hawdd i'w ddeall
oherwydd eu bod yn cyfateb i swyddogaethau yr ydych wedi ei weld o'r blaen yn y dosbarth mathemateg.
Nawr, gadewch i ni edrych ar swyddogaeth sydd ychydig yn wahanol.
Yn hytrach na dychwelyd gwerth, ei bod yn addasu wladwriaeth.
Gelwir hyn yn cael sgîl-effaith.
Yn y rhaglen hon, y swyddogaeth printf_fudd_style
Mae math o ddychwelyd nad ydym wedi gweld o'r blaen, ddi-rym.
>> Void yn cael ei ddefnyddio i ddweud nad yw swyddogaeth yn dychwelyd unrhyw beth.
Nid oes unrhyw newidynnau y lle gwag mewn fath,
felly os ydych yn ceisio dychwelyd rhywbeth o swyddogaeth fel printf_fudd_style,
Bydd y compiler gweiddi ar chi.
Y tu mewn printf_fudd_style, rydym yn gweld, er bod y swyddogaeth yn dal i perfformio tasg,
sef, newid pob Rs i WS,
y pwynt y swyddogaeth yw addasu y llinyn ac yna argraffwch hi ar y sgrin,
newid cyflwr y rhaglen yn hytrach na dychwelyd o ganlyniad.
Gan ddefnyddio'r swyddogaeth hon yn debyg iawn i ddefnyddio ein sgwâr a swyddogaethau swm,
ac eithrio nad ydym yn storio canlyniad mewn amrywiol neu ei drosglwyddo i ffwrdd i swyddogaeth arall
gan nad oes canlyniad i siarad o.
Felly, pan fyddwn yn llunio ac yn cynnal ein rhaglen Fudd Elmer,
byddwch yn gweld bod "Rydych rascally cwningen!" yn cael ei gweddnewid hawl i
"Rydych wascally wabbit!"
>> Yn olaf, mae swyddogaeth 1 yn fwy werth trafod
ers i chi wedi bod yn ei ddefnyddio ym mhob rhaglen C ydych wedi ysgrifennu erioed, prif.
Main yn swyddogaeth lawer fel unrhyw un arall.
Mae'n cael, math dychwelyd enw, rhestr o ddadleuon, a chorff.
Mae'r math dychwelyd brif bob amser yn int,
ac mae hyn yn int yn cael ei ddefnyddio i gyfathrebu statws y rhaglen pan mae'n gorffen.
>> A oedd yn rhedeg yn llwyddiannus, neu a oedd yn dod i ben yn gynnar oherwydd gwall?
Dychwelyd i sero yn dangos rhediad llwyddiannus,
a dychwelyd unrhyw werth nad yw'n sero yn dangos gwall.
Yn dibynnu ar y math o raglen yr ydych yn ysgrifennu,
Gall dychwelyd codau gwahanol ar gyfer gwahanol gwallau yn ddefnyddiol
ar gyfer pobl sy'n defnyddio eich rhaglen yn nes ymlaen.
Dadleuon prif gyflenwad yn ychydig yn fwy cymhleth.
>> Gall y rhestr ddadl naill ai fod yn wag,
yr ydym yn dangos drwy ysgrifennu gwag rhwng y cromfachau,
neu gall y rhestr gael 2 dadleuon: yn int ac amrywiaeth o * torgoch s.
Mae'r rhain yn cael eu defnyddio pan fydd eich rhaglen yn bwriadu defnyddio
dadleuon pasio i mewn ar y llinell orchymyn pan fydd y rhaglen yn cael ei galw i rym.
Mae'r ddadl int elwir fel arfer argc,
ac mae'n gyfartal ar hyd y rhesi * torgoch, a elwir yn argv.
Argv yn cynnwys y dadleuon llinell orchymyn basio i mewn i'r rhaglen.
Mewn un arall byr, byddwn yn siarad am sut i ddefnyddio'r newidynnau hyn yn fwy manwl.
Am y tro, gallwch deimlo'n rhydd i ddatgan brif naill ffordd neu'r llall.
Rwyf fel arfer yn dewis i ysgrifennu allan y ffordd byrrach, heb unrhyw dadleuon, pan fo hynny'n bosibl.
>> Nawr eich bod yn gwybod sut i ysgrifennu swyddogaethau,
eich bod yn dda ar eich ffordd i ddatblygu mwy o faint, mwy o rhaglenni cymhleth.
Fy enw i yw Nate Hardison. Mae hyn yn CS50.