[Powered by Google Translate] Funzjonijiet huma sezzjonijiet ta 'kodiċi użati fi programm akbar
biex twettaq xogħol partikolari.
Huma magħrufa wkoll bħala proċeduri, subroutines, u subprograms,
peress li verament huma biss programmi mini fi ħdan programmi.
Anke jekk inti tista 'ma ndunat,
inti aktar definittivament użajt funzjonijiet diġà jekk inti stajt programmati C.
Meta inti tikteb Jittieħed għall-iskrin bl-użu printf,
int fil-fatt tuża l-funzjoni msejħa printf.
Bl-istess mod, GetInt u GetString huma funzjonijiet li CS50 jipprovdi għalik.
Kif programmaturi, nużaw il-funzjonijiet għal numru ta 'raġunijiet.
>> Wara funzjonijiet li jwettaq kompiti komuni bħall-kitba għall-iskrin
u tħeġġeġ l-utent għall-input jiffranka us ħin meta jipprogrammaw.
Mhuwiex meħtieġ li jikteb il-kodiċi li tagħmel dawk l-affarijiet l-istess
peress li dawn qed diġà sar għalina.
Huwa lanqas neċessarja għalina biex nifhmu eżattament kif dawn il-funzjonijiet tax-xogħol internament.
Minflok, aħna biss għandek tkun taf kif tuża jew jsejħulhom fil-programmi tagħna.
Huwa wkoll utli li tikteb funzjonijiet programmi akbar
anki jekk int ma tippjana li fuq ħaddieħor jużawhom,
biss biex jaqsmu l-kompitu akbar fil-idejn.
Dan il-mod, inti tagħti l-istruttura għall-kodiċi tiegħek ferm simili youd tagħti struttura lill esej,
u ma 'proġetti verament kbar inti jippermettu lin-nies multipli
biex jaħdmu fuq partijiet differenti fl-istess ħin
peress li huwa ċar fejn ix-xogħol persuna waħda jispiċċa u ieħor l jibda.
>> Funzjonijiet tipikament joperaw fuq 1 jew aktar inputs, magħrufa bħala l-argumenti jew il-parametri,
trasformazzjoni dawk l-inputs fis b'valur ta 'produzzjoni li huwa mbagħad lura.
Madankollu, huwa wkoll possibbli li jkollhom funzjonijiet li ma jużawx l-ebda argument ta 'input
u ma jirritornawx output.
Okay, biżżejjed ma 'l-għalf fluffy.
Ejja tagħti ħarsa lejn xi funzjonijiet reali fil C.
>> Hawnhekk għandna funzjoni msejħa kwadru li, jemmnu jew le,
jikkalkula l-kwadru ta 'l-input.
Ejja dissect-sintassi ta 'dan.
L-ewwel kelma li tara fil-funzjoni, int,
jispeċifika t-tip ritorn tal-funzjoni, jiġifieri, it-tip Ċ ta 'l-output tal-funzjoni tal-.
Din il-funzjoni se output valur ma int tip.
Il-kelma li jmiss tara huwa l-isem tal-funzjoni, kwadru f'dan il-każ.
Naming funzjonijiet kif suppost huwa partikolarment importanti
peress li huwa probabbilment l-aktar viżibbli dokumentazzjoni ta 'dak il-funzjoni ma.
Jista 'jkun jibred biex insemmu din il-funzjoni Shazam jew Booyah,
iżda li ma tgħidilna xejn dwar dak li l-funzjoni ma.
>> Wara l-isem funzjoni jaslu l-inputs għall-funzjoni, l-argumenti.
Dawn huma elenkati ġewwa sett ta 'parentesi
kemm ma tip tagħhom u l-isem li juża għalihom fil-korp tal-funzjoni.
Pjazza jieħu biss 1 argument, l-int biex kwadru,
li stajt iddeċieda li jagħti l-isem x.
Dan jispiċċa d-dikjarazzjoni funzjoni jew prototip.
Il-ċineg kaboċċi madwar il-bqija tal-funzjoni
jindikaw il-bidu u t-tmiem tal-ġisem funzjoni,
id-definizzjoni tal-funzjoni stess.
Pjazza hija funzjoni pjuttost sempliċi.
Huwa biss ltqajna linja 1, peress li kollha għandna nagħmlu huwa timmultiplika x minnu stess.
Ir-ritorn kelma jispeċifika l-valur tal-produzzjoni u jqajjem it-tmiem tal-funzjoni.
Biex tuża l-funzjoni kwadru, għandna bżonn li jipprovdu l-inputs xierqa
u mbagħad jaqbdu l-output.
Hawnhekk, inti tara koppja ta 'modi ta' kif isir dan.
Aħna jista 'jgħaddi fil-int prima, bħall 6, jew nistgħu jgħaddu fil-varjabbli bħal.
Innota li kull darba li aħna sejħa kwadru,
aħna jaqbdu l-output fil-varjabbli u mbagħad jistampaw.
Madankollu, aħna ma jkollhom jaħżnu l-valur tar-ritorn fil-varjabbli u mbagħad jistampaw.
Nistgħu biss jibgħat direttament lill printf kif nagħmlu meta aħna kwadru 10,
iżda dan ma jfissirx li aħna ma jkollhomx aċċess għall-valur tar-ritorn tal-kwadru 10
x'imkien ieħor fil-kodiċi.
Ejja nħarsu lejn eżempju ieħor sempliċi.
>> Din id-darba, aħna ser qosor 2 sufruni flimkien sabiex inkunu tista tara dak funzjoni Dehra
meta huwa ltqajna 2 inputs minflok biss 1.
Kif tistgħu taraw, mhuwiex wisq differenti.
Kollha għandna tagħmel hu li żżid fil-argument 2, float jismu b,
mal-lista argument tuża virgola li jkun separat mill-ewwel argument, float a.
Allura, pjazza tagħna u l-funzjonijiet somma huma pjuttost faċli li wieħed jifhem
għaliex qed ekwivalenti għal funzjonijiet li inti stajt tidher qabel fil-klassi matematika.
Issa, ejja nħarsu lejn funzjoni li hija kemmxejn differenti.
Minflok jirritornaw valur, jimmodifika stat.
Dan huwa magħruf bħala li għandu effett sekondarju.
F'dan il-programm, il-funzjoni printf_fudd_style
għandha tip-ritorn li ma rajniex qabel, nulla.
>> Null huwa użat biex ngħid li l-funzjoni ma ritorn xejn.
M'hemm l-ebda fatturi varjabbli tat null tip,
hekk jekk inti tipprova li jirritornaw xi ħaġa minn funzjoni simili printf_fudd_style,
l-kumpilatur se Yell fi inti.
Ġewwa printf_fudd_style, naraw li filwaqt li l-funzjoni xorta jwettaq kompitu,
jiġifieri, il-qlib kollha Rs li Ws,
il-punt tal-funzjoni huwa li jimmodifika l-sekwenza u mbagħad ipprintjaha fuq l-iskrin,
jinbidlu l-istat tal-programm minflok jirritornaw riżultat.
Bl-użu din il-funzjoni hija simili ħafna bl-użu pjazza tagħna u l-funzjonijiet somma,
ħlief aħna ma taħżen-riżultat ta 'varjabbli jew tgħaddiha off għall-ieħor funzjoni
peress li m'hemm l-ebda riżultat li wieħed jitkellem.
Allura, meta aħna tiġbor u tmexxi Elmer Fudd programm tagħna,
tara li "Inti rascally fenek!" gets trasformat dritt li
"Inti wascally Wabbit!"
>> Fl-aħħarnett, hemm il-funzjoni 1 aktar jiswew tiddiskuti
peress li inti kont qed tuża huwa f'kull program C inti stajt qatt bil-miktub, prinċipali.
Main hija funzjoni ħafna bħal kull oħra.
Huwa ltqajna tip ritorn, isem, lista ta 'argumenti, u korp.
It-tip ritorn ta 'ewlieni huwa dejjem int,
u dan int huwa użat biex jikkomunikaw l-istatus tal-programm meta jispiċċa.
>> Ma kien run b'suċċess, jew ma kien tmiem bikri minħabba żball?
Jirritornaw lejn żero jindika run ta 'suċċess,
u jirritorna kull valur mhux żero jindika żball.
Skond it-tip ta 'programm int bil-miktub,
jirritornaw kodiċijiet differenti għal żbalji differenti jista 'jkun utli
għall-persuni li jużaw il-programm tiegħek aktar tard.
Argumenti tal-mejn huma ftit aktar kumplikata.
>> Il-lista argument jista 'jew tkun vojta,
li aħna tindika bil-kitba nulli fl bejn il-parentesi,
jew il-lista tista 'jkollha 2 argumenti: l-int u firxa ta' * char i.
Dawn huma użati meta program tiegħek biħsiebha tuża
argumenti għadda fuq il-linja tal-kmand meta l-programm huwa nvokat.
L-argument int huwa tipikament tissejjaħ argc,
u huwa ugwali it-tul ta 'l-array * char, magħrufa bħala ARGV.
ARGV fih l-argumenti kmand tal-linja għadda fil-programm.
F'każ ieħor qosor, aħna ser nitkellmu dwar kif jużaw dawn il-varjabbli f'aktar dettall.
Għal issa, inti tista 'tħossok liberu li tiddikjara prinċipali jew mod.
I tipikament jagħżlu li jiktbu l-mod iqsar, bl-ebda argumenti, meta possibbli.
>> Issa li taf kif jiktbu funzjonijiet,
int sew fit-triq tiegħek biex jiżviluppaw akbar, il-programmi aktar kumplessi.
Jisimni Nate Hardison. Dan huwa CS50.