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