[Powered by Google Translate] CHRIS GERBER: funkcija je niz korakov v večji program, ki je običajno namenjen, da se imenuje večkrat in iz različnih drugih lokacijah, program. Pri ustvarjanju funkcijo C, ena od zahtev je Določite vrsto vrnjene vrednosti. Najenostavnejši primer je stanje, v katerem pozivajo Oznaka se ne ukvarja z rezultatom funkcije. To bi se lahko zgodilo, ko smo se tiskanje podatke v uporabnikov zaslon, kot pri printf. V tem primeru lahko razglasi vrnjeno vrednost da so nična tipa. S praznino preprosto pove prevajalniku, da ni vrednost se bo vrnil. Pa poglejmo, kako izgleda. Recimo, da imamo funkcijo imenovano say_hello, da vzame en argument. Bomo dajati ime osebe in ga bo prikazal pozdrav na zaslonu. Ime bo tipa char *. In bomo določili, da argument. Moja vloga ni treba vedeti, kaj je bila natisnjena ali če ga je bila natisnjena. Tako bo vrnitev vrednost praznine tipa. Ta funkcija lahko natisnete na zaslon z ukazom, kot printf ("Pozdravljen% s \ n ", Ime);. Pozdravu se prikaže in nadzora, ne bo posredovana Nazaj na klicne kode. Ena stvar je tudi omeniti, da je, ko je vrnjena vrednost tipa void, vam ni treba, da vključujejo tudi donosnost Izjava v funkciji. Če se odločite, da vključuje eno, ne vključujejo vrnjeno vrednost kot argument. V nekaterih primerih je smiselno, da se vrnete vrednost od funkcije. Recimo, da smo napisali funkcijo imenovano add_floats. Bomo dajati dva argumenta, tako boje, imenovan prvi in ​​drugi. In to nam pove, kolikšen znesek teh splavov je. Vemo, da če bomo dodali 2 boje skupaj, rezultat bo drsenje. Glede na to, da smo se odločili za vrnitev tip float. Ta funkcija bo ta izračun, in se vrnete vrednosti v izjavi, kot so vračanje 1. + 2.;. Ko se nadzor prenese nazaj kliče kodo, posledica vrednost je zdaj na voljo v tem zakoniku. Mi lahko shranite to vrednost, kot so: float rezultat = add_floats (3,14, 1,62 ). Rezultat v tem primeru bi se zdaj vsebuje vrednost 4,76. Naj vas spomnimo, s plavajočo vejico, netočni. Torej, če je to obračun z uporabo dolarjev in centov, lahko razmislite natančno vrste podatkov, kot so int in opraviti izračun v penijev. Še en primer, kjer bi se želeli vrniti vrednost iz funkcija je, ko smo želeli vedeti, če je funkcija uspešna. Če ne bi bilo uspešno, lahko prav tako želeli vedeti, kakšne vrste Prišlo je do napake. Recimo, da smo poskušali odpreti datoteko na disku za štetje število znakov v njej. Če datoteka ni mogoče odpreti, želimo, da bi lahko ustavili in povedal si o težavi. Poklicali bomo naše funkcije count_file_chars in bo sprejme en argument. Bomo prehaja v ime datoteke z uporabo char * imenovane datoteke. Ta funkcija bi izgledal nekako takole. V tem primeru bi pričakujemo, da bo število vrne biti 0 ali več. To daje nam negativnih števil v uporablja kot kontrolne vrednosti. Sentinel vrednost je le posebna vrednota, ki je ni legitimna, vendar pa podatki posredujejo informacije. Tukaj, če se vrnem -1 za klicno kodo, sem dejansko pošilja sporočilo, da je prišlo do napake poskuša dostopati do datoteke. Lahko pa preverite, ali vrnjeno vrednost ugotoviti, če moj klic funkcije je bil uspešen. Če je bila številka 0 ali več, bi vedel, da število znakov v datoteki. Če pa je bilo število manjše od 0, bi lahko preprosto natisniti, da je prišlo do težave. En kompromis, ki menijo, da s pridržanjem vse negativne vrednosti v kontrolnih vrednosti, ob predpostavki, da je to 32-bitno celo, da sem v bistvu odpeljali okoli 2000000000 morebitne vrnjene vrednosti. Vrste vrednosti vrnitvi so eden od najpomembnejših elementov Funkcija klice. Upajmo, da ta kratek pregled pomagal menite o Tri ključne vrste: neveljaven, Rezultati vrednote in kontrolne vrednosti, in ko vsi trije bi lahko primerno kodo. Hvala za ogled.