[Powered by Google Translate] CHRIS GERBER: funktsioon on mitmeid meetmeid jooksul
suurema programmi, mis on tavaliselt mõeldud nimetatakse
mitu korda ja mitmest mujal
programmi.
Kui loote C funktsioon, üks nõuetest on
määrata tagastatava väärtuse tüüp.
Kõige lihtsamal juhul on olukord, kus helistaja
kood ei puuduta tulemus funktsioon.
See võib nii olla, kui me prindite andmeid
kasutaja ekraan, nagu printf.
Sel juhul saame kuulutada tagastatav väärtus
olema tüüpi tühine.
Kasutades tühine lihtsalt ütleb kompilaator, et ükski
väärtus tagastatakse.
Vaatame, mida see välja näeb.
>> Oletame, et meil on funktsioon nimega say_hello et
võtab üks argument.
Me andke seda isiku nimi ja see kuvab tervitus
ekraanil.
Nimi saab olema tüüpi char *.
Ja me täpsustada, et argument.
Minu taotlus ei vaja teada, mis on trükitud või kui see
aastal trükitud.
Nii et tagastatav väärtus on tüüpi tühine.
See funktsioon võib printida ekraanil ka käsurealt
printf ("Tere,% s \ n
", Nimi);.
Tervitus kuvatakse ja kontrolli kandub
Tagasi suunakood.
Üks asi on tähele panna, et kui tagastatav väärtus tüüp on tühine,
sa ei pea sisaldama tagasi
avalduse funktsioon.
Kui soovite olla üks, ei sisalda tagastatavat väärtust
argumendina.
>> Mõnel juhul on mõistlik tagasi
väärtus funktsioon.
Oletame, et meil olid kirjalikult funktsioon nimega add_floats.
Me andke seda kaks argumenti, nii ujukite,
nimetatakse esimese ja teise.
Ja ta ütleb meile, mida summast need ujukid on.
Me teame, et kui me lisame mõlemad ujukid kokku, tulemus
on sularahaga.
Arvestades, et me valime tüübi tagastamise sularahaga.
See funktsioon teeb seda arvutamist ja tagasi
väärtused avaldus nagu tagasipöördumine
esimene + teine;.
Kui kontroll on edasi tagasi suunakood,
tulemväärtusega on nüüd saadaval, et kood.
Me võime salvestada see väärtus nii: float tulemus =
add_floats (3.14, 1,62
);.
Tulemus sel juhul oleks nüüd sisaldada väärtus 4.76.
>> Nagu meeldetuletus, murdarve on ebatäpne.
Nii et kui see oli rahaline arvestus, kasutades dollarit ja
senti, me võiksite kaaluda täpne andmetüüp nagu
int ja sooritada arvutuse penni.
>> Teine juhtum, kus me tahaks tagasi väärtus
funktsioon on, kui me tahame teada, kui funktsioon oli
edukas.
Kui see ei õnnestunud, siis võib ka tahan teada, mis tüüpi
viga.
Ütleme, et me üritame avada faili kettal lugema
tähemärkide arv selles.
Kui faili ei saa avada, me tahame, et oleks võimalik peatuda ja
öelda kasutaja sellest probleemist.
>> Me kutsume meie funktsioon count_file_chars ja see tahe
võtke üks argument.
Me läbida faili nimi kasutades
char * nimega failinimi.
See funktsioon võib välja midagi sellist.
Selles näites me ootaks arv normaliseerus
olema 0 või rohkem.
See jätab meile taisarvud kuni
kasutada sentinell väärtused.
Sentinell väärtus on lihtsalt eriline väärtus, mis ei ole
õigustatud andmeid, kuid ei edastaks.
Siin, kui ma tagasi -1 kuni suunakood, olen
tegelikult sõnumi saatmist, et tekkis viga
püüab avada faili.
Ma võiksin siis vaadata, et tagastatav väärtus kindlaks teha, kas minu
funktsioon kõne oli edukas.
Kui number oli 0 või suurem, siis ma teaksin
sümbolite arv failis.
Kui aga arv oli väiksem kui 0, suutsin lihtsalt
printida, et probleem on tekkinud.
Üks kompromiss kaaluma seda, et jättes kõik
negatiivseid väärtusi nagu sentinel väärtused, eeldades, et see on
32-bitine täisarv, olen sisuliselt ära võtta ümber
2000000000 võimalik tagasi väärtused.
>> Tagasi väärtuse liiki on üks tähtsamaid elemente
funktsioon nõuab.
Loodetavasti see lühike ülevaade on aidanud teil mõelda
kolm peamist liiki: tühine, tulemus väärtused ja kontroll väärtused,
ja kui kõik kolm võivad olla
korral oma koodi.
Täname vaadates.