[Powered by Google Translate] Chris Gerber: Yon fonksyon se yon seri etap ki nan yon
pi gwo pwogram, ki se nòmalman fèt yo dwe rele
plizyè fwa, epitou soti nan kote plizyè lòt nan
pwogram nan.
Lè y ap kreye yon fonksyon C, youn nan kondisyon yo ki se
presize yon kalite valè retounen.
Ka a pi senp se yon sitiyasyon kote w rele a
kòd se pa sa konsène ak rezilta a nan fonksyon an.
Sa a ta kapab ka a lè n ap enprime done a
ekspozisyon itilizatè a, menm jan ak printf.
Nan ka sa a, nou ka deklare yon valè retou
yo dwe nan anile kalite.
Sèvi ak anile tou senpleman di du a ke pa gen okenn
valè ap retounen.
Ann gade pou wè ki sa sa a sanble.
>> Se pou nou di ke nou gen yon fonksyon ki rele say_hello ki
pran youn agiman.
Nou pral pase l non yon moun nan epi li pral afiche yon salitasyon
sou ekran an.
Non a pral nan * kalite Char.
Epitou, n ap presize ke kòm agiman an.
Aplikasyon mwen an pa bezwen konnen sa ki te enprime oswa si li
te enprime.
Se konsa, valè a retounen yo pral nan anile kalite.
Sa a fonksyon ka enprime ekran an ak yon lòd tankou
printf ("Hello,% s \ n
", Non);.
Ap salitasyon a ap parèt ak kontwòl yo pral pase
Retounen nan kòd la rele.
Youn nan bagay sonje se ke lè kalite a valè retou se anile,
ou pa bezwen gen ladan yo yon retou
deklarasyon nan fonksyon an.
Si ou chwazi gen ladan yo yon sèl, pa enkli yon valè retou
kòm yon agiman.
>> Nan kèk ka, li fè sans nan retounen yon
valè soti nan yon fonksyon.
Se pou nou di ke nou te ekri yon fonksyon rele add_floats.
Nou pral pase l de prèv, tou de flote,
rele premye ak dezyèm.
Epi li pral di nou sa sòm total la nan tout sa yo flote se.
Nou konnen ke si nou ajoute de cha ansanm, rezilta a
pral gen yon flote.
Bay sa yo, nou chwazi yon kalite retounen nan flote.
Sa a fonksyon pral fè sa nou kalkile a epi retounen
valè yo nan yon deklarasyon tankou retou
premye + dezyèm;.
Lè kontwòl la transmèt tounen nan kòd la rele, nan
ki kapab lakòz valè se kounye a disponib ak sa yo ki kòd.
Nou ka magazen sa a valè tankou konsa: rezilta flote =
add_floats (3.14, 1,62
);.
Rezilta nan ka sa a ta kounye a gen ladan valè a 4,76.
>> Kòm yon rapèl, valè pwen k ap flote yo se enpresizyon.
Se konsa, si sa a se te yon kalkil finansye, lè l sèvi avèk dola ak
santim, nou ka vle konsidere yon egzak done kalite tankou
Int ak fè kalkil la nan peni.
>> Yon lòt ka kote nou ta vle retounen yon valè ki sòti nan yon
fonksyon se lè nou vle konnen si yon fonksyon te
siksè.
Si li te pa reyisi, nou ka vle tou konnen ki kalite
erè te fèt la.
Se pou nou di ke nou ap eseye louvri yon dosye sou ki gen kapasite nan konte
nimewo a nan karaktè nan li.
Si dosye a pa ka louvri, nou vle pou kapab sispann ak
di itilizatè a sou pwoblèm nan.
>> Nou pral rele count_file_chars fonksyon nou yo ak li pral
pran yonn agiman.
Nou pral pase nan non dosye a lè l sèvi avèk yon
Char * rele fichier.
Sa a fonksyon ta ka gade yon bagay tankou sa a.
Nan egzanp sa a, nou ta atann konte a tounen nan
dwe 0 oswa pi plis.
Sa a fèy nou nonm antye relatif yo negatif
itilize kòm valè Sentinel.
Yon valè Sentinel se senpleman yon valè espesyal ki se pa
done lejitim men transmèt enfòmasyon.
Isit la, si mwen tounen yon -1 al nan kòd la rele, se mwen menm
aktyèlman voye mesaj la ke yon erè ki te fèt pandan y ap
ap eseye gen aksè a dosye a.
Mwen te kapab Lè sa a, tcheke ki valè retounen nan detèmine si mwen
rele nan fonksyon te gen siksè.
Si nimewo a te 0 oswa pi plis, mwen ta konnen an
nimewo nan karaktè nan dosye a.
Si, toutfwa, kantite a te mwens pase 0, mwen te kapab tou senpleman
enprime sa ki te yon pwoblèm ki te fèt.
Youn nan komès-off yo konsidere se ke lè rezève nan tout
valè negatif kòm valè Sentinel, an konsideran sa a se yon
32-bit nonb antye relatif, mwen te esansyèlman wete alantou
2 milya dola valè retou posib.
>> Kalite valè retounen yo se youn nan eleman ki nan pi enpòtan
fonksyon apèl.
Èspere ke sa a te BECA kout te ede ou panse osijè de
twa kalite kle: anile, valè rezilta, ak valè Sentinel,
ak ki lè chak nan twa a ta kapab
apwopriye nan kòd ou a.
Mèsi pou gade.