[Powered by Google Translate] CHRIS GERBER: kazi ni mfululizo wa hatua ndani ya
kubwa mpango, ambayo ni kawaida lengo kuitwa
mara nyingi na kutoka nyingi maeneo mengine katika
mpango.
Wakati kujenga kazi C, moja ya mahitaji ni kwa
bayana thamani kurudi aina.
kesi ya rahisi ni hali ambapo wito
code ni si na wasiwasi na matokeo ya kazi.
Hii inaweza kuwa kesi wakati sisi ni kuchapisha data kwa
kuonyesha ya mtumiaji, kama kwa printf.
Katika kesi hiyo, tunaweza kutangaza thamani ya kurudi
kuwa ya utupu aina.
Kutumia utupu tu anamwambia compiler kwamba hakuna
thamani watarejeshwa.
Hebu kuona nini hii inaonekana kama.
>> Hebu kusema kwamba tuna kazi kuitwa say_hello kwamba
inachukua moja hoja.
Tutaweza kupita jina la mtu na itakuwa kuonyesha salamu
kwenye screen.
jina itakuwa ya * aina Char.
Na tutaweza bayana kwamba kama hoja.
Maombi yangu haina haja ya kujua nini ilichapishwa au kama ni
kilichapishwa.
Hivyo thamani kurudi itakuwa ya utupu aina.
Kazi hii inaweza magazeti kwa screen na amri kama
printf ("Hello,% s \ n
", Jina);.
salamu yataoneshwa na kudhibiti itakuwa kupita
nyuma kwa kificho wito.
Jambo moja kukumbuka ni kwamba wakati thamani kurudi aina ni batili,
huna haja kwa pamoja kurudi
taarifa katika kazi.
Kama wewe kuchagua ni pamoja na moja, si ni pamoja na thamani ya kurudi
kama hoja.
>> Katika baadhi ya matukio, ni mantiki ya kurudi
thamani kutoka kazi.
Hebu kusema kwamba tulikuwa kuandika kazi kuitwa add_floats.
Tutaweza kupita hoja mbili, ikifungwa,
kuitwa kwanza na pili.
Na itakuwa kutuambia nini Jumla ya ikifungwa wale ni.
Tunajua kwamba kama sisi kuongeza ikifungwa mbili pamoja, matokeo
itakuwa kuelea.
Kutokana na kwamba, sisi kuchagua aina ya kurudi kwa kuelea.
Kazi hii utakaotenda hayo mahesabu na kurudi
maadili katika taarifa kama kurudi
kwanza + pili;.
Wakati udhibiti ni kupita nyuma code wito,
kusababisha thamani sasa inapatikana kwa kificho kwamba.
Tunaweza kuhifadhi thamani hii kama hivyo: kuelea matokeo =
add_floats (3.14, 1.62
);.
Matokeo katika kesi hii ingekuwa sasa vyenye thamani 4.76.
>> Kama ukumbusho, floating kumweka maadili ni imprecise.
Hivyo kama hii ilikuwa hesabu za fedha, kwa kutumia dola na
senti, sisi inaweza kufikiria data sahihi ya aina kama vile
int na kufanya hesabu katika pennies.
>> Kesi nyingine ambapo sisi wanataka kurudi thamani kutoka
kazi ni wakati tunataka kujua kama kazi ilikuwa
mafanikio.
Kama haikuwa na mafanikio, sisi pia nataka kujua ni aina gani ya
Hitilafu ilitokea.
Hebu kusema kwamba sisi ni kujaribu kufungua faili kwenye disk ya kuhesabu
idadi ya herufi katika hilo.
Kama faili hawezi kufunguliwa, tunataka kuwa na uwezo wa kuacha na
kuwaambia mtumiaji juu ya tatizo.
>> Tutamwita kazi count_file_chars yetu na mapenzi
kuchukua moja hoja.
Sisi itabidi kupita katika jina la faili kwa kutumia
Char * kuitwa filename.
Kazi hii ili kuangalia kitu kama hiki.
Katika mfano huu, tulitazama kuhesabu akarudi
kuwa 0 au zaidi.
Hii inatuacha integers hasi kwa
kutumia kama maadili sentinel.
thamani sentinel ni tu thamani maalum ambayo si
data halali lakini haina kuwasilisha taarifa.
Hapa, kama mimi kurudi -1 kwa kificho wito, mimi ni
kweli kutuma ujumbe kwamba kosa ilitokea wakati
kujaribu kupata faili.
Mimi nilikuwa basi kuangalia kwamba thamani ya kurudi ili kuamua kama yangu
kazi wito ilikuwa na mafanikio.
Kama idadi ilikuwa 0 au zaidi, napenda kujua
idadi ya herufi katika faili.
Kama, hata hivyo, idadi ilikuwa chini ya 0, mimi nilikuwa tu
magazeti kwamba tatizo ilitokea.
Moja biashara-off ya kuzingatia ni kwamba kwa reservera wote
maadili hasi kama maadili sentinel, kuchukua hii ni
32-bit integer, mimi kimsingi kuchukuliwa mbali duniani
Bilioni 2 inawezekana kurudi maadili.
>> Kurudi thamani aina ni moja ya mambo muhimu zaidi ya
kazi wito.
Hopefully hii overview mfupi imesaidia unafikiri juu ya
tatu muhimu aina: batili, maadili matokeo, na maadili sentinel,
na wakati kila mmoja wa tatu inaweza kuwa
sahihi katika code yako.
Shukrani kwa ajili ya kuangalia.