[Powered by Google Translate] Chris Gerber: A funzjoni hija serje ta 'passi fi ħdan
programm akbar, li huwa normalment maħsub li se jkun jismu
ħinijiet multipli u minn postijiet oħra multipli
il-programm.
Meta jkun qed jinħoloq funzjoni C, wieħed mir-rekwiżiti hu li
tispeċifika tip valur tar-ritorn.
Il-każ sempliċi hija sitwazzjoni fejn il-sejħa
kodiċi ma jikkonċernax ir-riżultat tal-funzjoni.
Dan jista 'jkun il-każ meta aħna l-istampar tad-data għall-
wiri utent, kif ma printf.
F'dan il-każ, nistgħu jiddikjaraw valur tar-ritorn
li jkunu ta 'bla effett tip.
Bl-użu null sempliċiment jirrakkonta l-kumpilatur li l-ebda
valur se jiġu rritornati.
Ejja naraw dak dan qisu.
>> Ejja ngħidu li għandna funzjoni msejħa say_hello li
tieħu waħda argument.
Aħna ser tgħaddiha isem ta 'persuna u se juru greeting
fuq l-iskrin.
L-isem se jkun ta '* char tip.
U aħna ser jispeċifikaw li l-argument.
Applikazzjoni tiegħi ma jeħtieġ li tkun taf dak li kien stampat jew jekk
kienet stampata.
Allura l-valur tar-ritorn se jkun ta 'bla effett tip.
Din il-funzjoni tista 'jistampaw l-iskrin bil-kmand bħal
printf ("Hello,% s \ n
", L-isem),.
Il-greeting se jintwerew u l-kontroll se tiġi mgħoddija
lura għall-kodiċi sejħa.
Ħaġa waħda li wieħed jinnota hu li meta t-tip valur tar-ritorn hija nulla,
inti m'għandekx bżonn li jinkludu ritorn
dikjarazzjoni fil-funzjoni.
Jekk inti tagħżel li tinkludi waħda, ma jinkludux il-valur tar-ritorn
bħala argument.
>> F'xi każijiet, jagħmel sens li jirritornaw
valur minn funzjoni.
Ejja ngħidu li konna kitba ta 'funzjoni msejħa add_floats.
Aħna ser tgħaddiha żewġ argumenti, kemm sufruni,
imsejħa l-ewwel u t-tieni.
U se jgħidulna dak it-total ta 'dawk flowts huwa.
Aħna nafu li jekk aħna żid żewġ sufruni flimkien, ir-riżultat
se jkun float.
Minħabba dan, aħna tagħżel it-tip ta 'ritorn float.
Din il-funzjoni se jwettaq dan il-kalkolu u r-ritorn
il-valuri fi stqarrija bħal ritorn
1 + 2;.
Meta l-kontroll jiġi mgħoddi lura lill-kodiċi li ssejjaħ, il-
jirriżultaw valur huwa issa disponibbli għal dan il-kodiċi.
Nistgħu jaħżen dan il-valur bħal dan: riżultat float =
add_floats (3.14, 1.62
);.
Riżultat f'dan il-każ issa se jkun fiha l-valur 4.76.
>> Bħala tfakkira, il-valuri b'punt li huma impreċiżi.
Allura jekk dan kien kalkolu finanzjarju, bl-użu dollari u
ċenteżmi, aħna tista 'tixtieq li jikkunsidraw it-tip tad-data preċiża bħal
int u jagħmel il-kalkoli fil pennies.
>> Każ ieħor fejn aħna rridu li jirritornaw valur minn
funzjoni huwa meta aħna trid tkun taf jekk funzjoni kienet
suċċess.
Jekk ma kienx ta 'suċċess, aħna tista' wkoll trid tkun taf liema tip ta '
Ġara żball.
Ejja ngħidu li aħna qed tipprova tiftaħ fajl fuq diska biex jingħaddu
in-numru ta 'karattri fiha.
Jekk il-fajl ma jkunux jistgħu jinfetħu, irridu nkunu kapaċi twaqqaf u
tgħid l-utent dwar il-problema.
>> Aħna ser sejħa count_file_chars funzjoni tagħna u se
tieħu waħda argument.
Aħna ser jgħaddu fl-isem tal-fajl bl-użu ta
char * imsejħa isem tal-file.
Din il-funzjoni tista 'tidher xi ħaġa bħal din.
F'dan l-eżempju, aħna nistennew li l-għadd lura
ikunu 0 jew aktar.
Dan iħalli us-interi negattivi li
użu bħala valuri sentinelli.
Valur sentinel huwa sempliċement valur speċjali li ma jkunx
data leġittimi, iżda ma jwasslu informazzjoni.
Hawnhekk, jekk I ritorn -1 għall-kodiċi li ssejjaħ, I am
fil-fatt jibgħat il-messaġġ li Żball seħħet waqt
tipprova l-aċċess l-fajl.
I jistgħu mbagħad tiċċekkja li l-valur tar-ritorn biex jiddeterminaw jekk tiegħi
sejħa funzjoni kienet ta 'suċċess.
Jekk in-numru kien ta '0 jew akbar, nixtieq jafu l-
Numru tal-karattri fit-fajl.
Jekk, madankollu, in-numru kien inqas minn 0, I jistgħu sempliċiment
print li problema kien seħħ.
Wieħed kompromess li hija tikkunsidra li billi tirriżerva l il-
valuri negattivi bħala valuri sentinella, jekk wieħed jassumi li dan huwa
32-bit numru sħiħ, I essenzjalment meħuda 'il bogħod madwar
2000000000 valuri possibbli ritorn.
>> Tipi ta 'valur Ritorn huma wieħed mill-aktar elementi importanti ta'
funzjoni sejħiet.
Nisperaw li dan ħarsa qasira għen inti taħseb dwar
tliet tipi ewlenin: null, il-valuri tar-riżultati, u l-valuri sentinella,
u meta kull wieħed mill-tliet jista 'jkun
xieraq fil-kodiċi tiegħek.
Grazzi għall-ħars.