[Powered by Google Translate] CHRIS GERBER: funkcija ir virkne soļiem
lielāka programmu, kas parasti ir paredzēts saukt
vairākas reizes un no vairākām citām vietām, kas
programmā.
Veidojot C funkcija, viena no prasībām ir
norādīt atgriešanās vērtību tipu.
Vienkāršākais gadījums ir situācija, kad zvana
kods nav saistīta ar rezultātu funkciju.
Tas varētu būt gadījums, kad mēs drukājot datus uz
lietotāja displejs, kā ar printf.
Šajā gadījumā, mēs varam atzīt atgriešanās vērtību
jābūt tipa neesošu.
Izmantojot tukšumu vienkārši stāsta kompilators, kas nav
vērtība tiks atgriezta.
Paskatīsimies, kā tas izskatās.
>> Pieņemsim, ka mums ir funkcija sauc say_hello ka
ņem vienu argumentu.
Mēs nodot to personas vārdu un tas būs redzams sveiciens
uz ekrāna.
Nosaukums būs tipa char *.
Un mēs norādīt, ka kā argumentu.
Mans pieteikums nav nepieciešams zināt, ko bija izdrukāt vai ja to
izdrukāšanas.
Tātad atgriešanās vērtība būs tipa neesošu.
Šī funkcija var drukāt uz ekrāna ar komandu, piemēram,
printf ("Sveiki,% s \ n
", Nosaukums);.
Apsveikuma tiks parādīts un kontrole tiks nodota
atpakaļ uz izsaucēja kodu.
Viena lieta ir tas, ka tad, kad atgriešanās vērtību veids nav spēkā,
Jums nav nepieciešams ietvert arī ienākumus
apgalvojums funkciju.
Ja jūs izvēlaties, lai ietvertu vienu, neietver atgriešanās vērtību
kā argumentu.
>> Dažos gadījumos, tas ir jēga, lai atgrieztos
vērtība no funkciju.
Pieņemsim, ka mēs bijām rakstot funkciju sauc add_floats.
Mēs nodot to divus argumentus, gan plosti,
sauc par pirmo un otro.
Un tas būs mums pastāstīt, kādām šīm pludiņiem summa ir.
Mēs zinām, ka, ja mēs pievienot divas pludiņi kopā, rezultāts
būs peldēt.
Ņemot vērā, ka, mēs izvēlamies atgriešanās veidu pludiņu.
Šī funkcija tiks veiktu šo aprēķinu un atgriezties
vērtībām savā paziņojumā kā atgriešanās
1. + sekundē;.
Kad kontrole tiek nodota atpakaļ uz izsaucēja kodu,
Iegūtā vērtība tagad ir pieejams ar šo kodu.
Mēs varam glabāt šo vērtību, piemēram, tā: pludiņš rezultāts =
add_floats (3.14, 1,62
).
Rezultāts šajā gadījumā būtu tagad satur vērtību 4.76.
>> Kā atgādinājums, peldošā punkta vērtības ir neprecīzas.
Tātad, ja tas bija finanšu aprēķins, izmantojot dolāru un
centiem, mēs varētu vēlēties apsvērt precīzu datu tipu, piemēram,
int un veiktu aprēķinu pennies.
>> Cits gadījums, kad mēs vēlamies, lai atgrieztu vērtību no
funkcija ir, kad mēs vēlamies zināt, vai funkcija ir
veiksmīga.
Ja tas nav veiksmīgs, mēs arī gribam zināt, kāda veida
kļūda.
Pieņemsim, ka mēs cenšamies, lai atvērtu failu uz diska, lai saskaitītu
rakstzīmju skaitu tajā.
Ja failu nevar atvērt, mēs vēlamies, lai spētu apstāties un
pateikt lietotājam par problēmu.
>> Mēs saucam mūsu funkcija count_file_chars un tas būs
veikt vienu argumentu.
Mēs iet ar nosaukumu faila izmantojot
char * sauc filename.
Šī funkcija varētu izskatīties kaut kas līdzīgs šim.
Šajā piemērā, mēs varētu sagaidīt skaits atgriezies
ir 0 vai vairāk.
Tas atstāj mums negatīvo integers līdz
izmantot kā kontrolputniem vērtībām.
Sentinel vērtība ir vienkārši īpaša vērtība, kas nav
likumīgajām datu bet nodot informāciju.
Lūk, ja es atgrieztos -1 līdz izsaucēja kodu, es esmu
faktiski nosūtot ziņu, ka kļūda
mēģinot piekļūt failu.
Es varētu pārbaudīt, atgriešanās vērtību, lai noteiktu, vai mans
funkcija zvans bija veiksmīga.
Ja skaits bija 0 vai lielāka, es zinu
rakstzīmju skaitu failu.
Tomēr, ja to skaits bija mazāks nekā 0, es varētu vienkārši
drukāt, ka problēma bija noticis.
Viens kompromiss apsvērt, ir, ka, rezervējot visas
negatīvas vērtības kā kontrolputniem vērtību, pieņemot, ka tas ir
32-bitu skaitlis, es būtībā atņemti ap
2000000000 iespējamās atgriešanās vērtību.
>> Atgriešanās vērtību tipi ir viens no svarīgākajiem elementiem
funkcija zvani.
Cerams, ka šis īss pārskats ir palīdzējis jūs domājat par
Trīs galvenie veidi: spēku, rezultāts vērtībām, un kontrolputnus vērtības,
un ja katrā no trim varētu būt
piemērots jūsu kodu.
Paldies par skatoties.