[Powered by Google Translate] Funktsioonid on osades kood, mida kasutatakse suurema programmi
et täita teatud ülesannet.
Nad on tuntud ka kui kord, alamprogrammid, ja alaprogramme,
kuna nad tegelikult on lihtsalt mini programmide raames.
Kuigi te ei pruugi olla märganud,
Te kindlasti olete kasutanud funktsioone juba siis, kui olete programmeeritud C.
Kui Sa kirjutad kraami ekraani kasutades printf,
sa oled tegelikult kasutades funktsiooni nimetatakse printf.
Samuti GetInt ja getString on funktsioone, mis CS50 annab teile.
Kuna programmeerijad, me kasutame funktsioone mitmel põhjusel.
>> Võttes ülesandeid täitma ühiseid ülesandeid nagu kirjalikult ekraanil
ja õhutusel kasutaja sisend säästab meid ajal, kui programmeerimine.
Ei ole vaja kirjutada koodi teha neid samu asju
kuna nad juba teinud meie heaks.
See ei ole isegi vaja meid täpselt aru, kuidas need funktsioonid töötavad sisemiselt.
Selle asemel me lihtsalt pead teadma, kuidas kasutada neile saab helistada meie programmides.
Samuti on kasulik kirjutada funktsioone suuremate programmide
isegi kui sa ei plaani võttes teised kasutavad neid,
lihtsalt jagada suurema ülesande.
Nii, sa annad struktuur oma koodi meelega sa annad struktuur essee,
ja tõesti suured projektid te lubade mitu inimest
töö erinevaid osi samal ajal
kuna on selge, kus ühe inimese töö lõpeb ja teine ​​on algust.
>> Funktsioonid üldiselt töötavad 1. või mitme sisendi tuntud argumendid või parameetreid,
muutes need sisendid toodangu väärtus, mis on siis tagasi.
Siiski on võimalik ka funktsioone, mis ei kasuta sisestatud argumente
ja tagasi ei tule väljund.
Okei, aitab kohev kraam.
Võtame pilk mõned tõelised funktsioonide C.
>> Siin on meil funktsioon nimega ruut, et uskuge või mitte,
arvutab ruudu sisendi.
Olgem lahkama süntaks see.
Esimene sõna, mida näed funktsiooni, keskmine,
täpsustatakse tagastamise tüüpi funktsioon, see on, C tüüpi funktsiooni väljund.
See funktsioon tulemus on väärtus tüüpi int.
Järgmine sõna näed on funktsiooni nimi, ruut käesoleval juhul.
Naming funktsiooni sobivalt on eriti oluline
kuna see on ilmselt kõige nähtavam dokumentatsioon, mida funktsioon teeb.
Oleks lahe kui nimetada seda funktsiooni Shazam või Hurraa,
kuid see ei ütle meile midagi selle kohta, mida funktsioon teeb.
>> Pärast funktsiooni nimi tulnud sisendite funktsioon, argumendid.
Need on loetletud sees komplekti sulgudes
nii oma liigi ja nime kasutada neid kehas funktsioon.
Square võtab vaid 1 argument, int kandiline,
mis ma olen otsustanud anda nime x.
See lõpeb funktsiooni deklaratsiooni või prototüüp.
Looksulg ümbritsev ülejäänud funktsioon
tähistavad alguses ja lõpus funktsiooni keha,
mõiste funktsioon ise.
Square on päris lihtne ülesanne.
See on ainult sain 1 rida, sest kõik me peame tegema, on korrutada x iseenesest.
Sõna tagasi määrab toodangu väärtus ja vallandab lõpuks funktsiooni.
Et kasutada ruudu funktsioon, peame andma asjakohaseid sisendeid
ja siis jälle väljund.
Siin näed paar viise seda.
Me võime läbida toores int, nagu 6 või saame läbida muutuja nagu.
Pidage meeles, et iga kord, kui me helistada ruut,
me lüüa toodangu muutuja ja proovige uuesti printida.
Kuid me ei pea salvestada tagastatav väärtus on muutuv ja seejärel printida.
Me võiksime lihtsalt saatke see otse printf nagu me teeme, kui me väljak 10,
kuid see ei tähenda, et meil ei ole juurdepääsu tagastatav väärtus väljak 10
mujal kood.
Vaatame veel üks lihtne näide.
>> Seekord me kokku 2 ujukite kokku, et me saaksime näha, mida funktsioon välja näeb
kui see sai 2 sisendit asemel vaid 1.
Nagu näete, see ei ole palju erinev.
Kõik me teeme, on lisada 2. argument, float nimega b,
Seoses argumendiga nimekirja kasutades koma, et eraldada see esimene argument, float.
Niisiis, meie ruut ja summa funktsioonid on üsna lihtne aru saada
sest nad on samaväärsed funktsioonid, et olete näinud matemaatika klassi.
Nüüd vaatame funktsioon, mis on veidi teistsugune.
Selle asemel, et tagastada raha, see muudab riigi.
Seda tuntakse võttes kõrvaltoime.
Selles programmis, printf_fudd_style funktsioon
on naasmise tüüp, et me pole varem näinud, tühine.
>> Tühjus on tavaks öelda, et funktsioon ei tagasta midagi.
Puuduvad muutujad tüüpi tühine,
nii et kui sa püüad midagi tagastada alates funktsioon nagu printf_fudd_style,
kompilaator ütleb teile.
Toas printf_fudd_style, näeme, et kui funktsioon ikka täidab ülesande
nimelt, lülitus kõik Rs et Ws,
punkt on funktsiooni muuta stringi ja seejärel printida ekraanil
oleku muutmisel programmi asemel, et tagastada tulemus.
Selle funktsiooni abil on väga sarnane kasutades meie ruut ja summa funktsioone,
välja arvatud me ei salvesta tulemus muutuja või andke see välja mõne muu funktsiooni
kuna puudub tulemus rääkida.
Nii et kui me kompileerida ja käivitada meie Elmeri programmi
näed, et "Sa vallatu küülik!" saab ümber õigus
"Sa wascally Wabbit!"
>> Lõpuks on veel 1 funktsioon tasub arutada
kuna olete kasutanud seda iga C programm olete kunagi kirjutatud, peamised.
Peamine on funktsioon palju nagu iga teine.
See sai tulu liik, nimi, argumentide loetelu, ja keha.
Tüübi tagastamise peamine on alati int,
ja see int kasutatakse suhelda staatuse programmi, kui ta lõpetab.
>> Kas see kestab edukalt, või tegid seda varem lõppenud, sest vea?
Tulles tagasi nulli näitab edukat kulgema,
ja jälle igal nullist väärtus näitab viga.
Sõltuvalt sellest, millist programmi sa oled kirjalikult,
tagasi erinevad koodid erinevad vead võivad olla abiks
inimestele, kes kasutavad oma programmi hiljem.
Võrgutoide argumendid on veidi keerulisem.
>> Argument nimekiri võib olla kas tühi,
mis me näidata, kirjutades tühine vahel sulgudes,
või loendil võib olla 2 argumenti: int ja array char * s.
Neid kasutatakse, kui teie programm kavatseb kasutada
argumentide sisse käsureal, kui programm on tuginetud.
Int argument on tavaliselt nimetatakse argc,
ja see on võrdne pikkus char * rida, mida tuntakse argv.
Argv sisaldab käsurea argumente läks programm.
Teises Ühesõnaga, me räägime, kuidas kasutada neid muutujaid üksikasjalikumalt.
Praegu võite julgelt kuulutada peamine ükskõik kummale poole.
Ma tavaliselt valida kirjutada seda lühem tee, ilma argumentideta, kui võimalik.
>> Nüüd sa tead, kuidas kirjutada funktsioone,
sa oled hästi oma viis arendada suuremad keerulisi programme.
Minu nimi on Nate Hardison. See on CS50.