[Powered by Google Translate] CHRIS GERBER: funkcija žingsnių serija
didesnis programa, kuri paprastai yra skirta būti vadinamas
kelis kartus ir iš kelių kitose vietose
programa.
Kurdami C funkciją, vienas iš reikalavimų yra tas, kad
nurodyti grąžinimo reikšmės tipą.
Paprasčiausia yra situacija, kai skambinate
kodas nėra susijusi su funkcija.
Tai gali būti tuo atveju, kai mes spausdinti duomenis
vartotojo ekrane, kaip ir printf.
Šiuo atveju, mes galime paskelbti sugrįžimo vertę
tipo tuštumos.
Naudojant negaliojančiu tiesiog pasakoja kompiliatorių, kad ne
vertė bus grąžintas.
Pažiūrėkime, kaip tai atrodo.
>> Tarkime, kad mes turime funkcija vadinama say_hello, kad
priima vieną argumentą.
Przekażemy asmens vardą, ir jis bus rodomas pasveikinimas
ekrane.
Pavadinimas bus tipo char *.
Ir mes nurodyti, kad kaip argumentą.
Mano prašymas nėra, reikia žinoti, kas buvo išspausdinta, arba jei jį
buvo išspausdinta.
Taigi grąžina vertė bus tipo tuštumos.
Ši funkcija gali spausdinti į ekraną naudodami tokią komandą kaip
printf ("Sveiki,% s \ n
", Name);
Pasisveikinimas bus rodomas ir kontrolė bus perduota
atgal, kad iš kurio skambinama, kodą.
Vienas dalykas, reikia pažymėti, kad tokiu atveju, kai grąžinama vertė yra niekinė,
jums nereikia įtraukti grąžą
pareiškimą funkcijos.
Jei jūs taip pat pasirinkti vieną, neapima sugrįžimo vertę
kaip argumentu.
>> Kai kuriais atvejais, būtų logiška, jei norite grįžti
vertė nuo funkcijos.
Leiskite pasakyti, kad buvome raštu funkcija vadinama add_floats.
Przekażemy du argumentus, abi plūdes,,
vadinamas pirmas ir antras.
Ir jis jums pasakys mums, ką iš tų plūdžių suma.
Mes žinome, kad, jei mes pridėti dvi plūdės yra pakibusios kartu, rezultatas
bus plūdės.
Atsižvelgiant į tai, kad, mes renkamės grįžimo tipo plūdės.
Ši funkcija bus atlikti šį skaičiavimą ir grįžti
kaip Grizimas vertės
+ sekundę;.
Kai kontrolė būtų perduota iš kurio skambinama, kodą,
todėl vertė yra dabar šio kodekso.
Šią vertę, kaip mes galime laikyti: float rezultatas =
add_floats (3,14, 1,62
);.
Šiuo atveju rezultatas dabar yra reikšmę 4,76.
>> Primename, kad slankiojo kablelio reikšmės yra netikslūs.
Taigi, jei tai buvo finansinis apskaičiavimas, naudojant JAV dolerių ir
centų, galbūt norėsite apsvarstyti tikslių duomenų tipą, pavyzdžiui,
INT ir atlikti skaičiavimą centus,.
>> Kitas atvejis, kai mes norime grąžinti nuo vertės
funkcija, kai mes norime žinoti, jei funkcija buvo
sėkmingas.
Jei jis buvo ne sėkmingas, mes gali taip pat nori žinoti, kokio tipo
klaida.
Tarkime, kad mes bandome atidaryti failą diske skaičiuoti
simbolių skaičių į jį.
Jei failas negali būti atidarytas, mes norime, kad būtų galima sustabdyti ir
pasakykite vartotoją apie problemą.
>> Mes jį vadiname savo funkcijas count_file_chars ir jis bus
imtis vieno argumento.
Mes pereiti į failo vardą, naudojant
char * vardas.
Ši funkcija gali atrodyti taip.
Šiame pavyzdyje, mes galime tikėtis, skaičius grįžo į
0 arba daugiau.
Tai palieka mums neigiamus sveikuosius skaičius
naudoti kaip sargybiniams vertybių.
Sargybinis vertė yra tiesiog ypatingą vertę, kuri yra
teisėti duomenis, bet perteikti informaciją.
Čia, jei aš grįšiu -1 iki kurio skambinama, kodą, aš esu
siunčia pranešimą, kad įvyko klaida, o
bando pasiekti šį failą.
Galėtų patikrinti, kad sugrįžimo vertę, siekiant nustatyti, jei mano
funkcijos iškvietimas buvo sėkmingas.
Jei šis skaičius buvo 0 arba didesnis, aš norėčiau žinoti
simbolių skaičius bylos.
Tačiau, jei šis skaičius buvo mažesnis už 0, galėčiau tiesiog
Spausdinti kad problema įvyko.
Vienas kompromisą apsvarstyti, yra, kad, skirdamos visi
neigiamas reikšmes funkcijas kontrolės verčių, darant prielaidą, kad tai yra
32-bitų sveikasis skaičius, aš iš esmės atimti aplink
2 mlrd. Galimą grąžą vertės.
>> Sugrįžimo vertę tipai yra vienas iš svarbiausių elementų
funkcija skambučiai.
Tikimės, kad ši trumpa apžvalga padėjo jums galvoti apie
trys pagrindiniai tipai: negaliojančiu, rezultato vertės, ir nežinomas, kontroliniai vertės,
ir kai kiekvieno iš trijų gali būti
tinkama Jūsų kodas.
Thanks for watching.