[Powered by Google Translate] Chris Gerber: Funkcio estas serio de paŝoj ene de
pli granda programo, kiu estas kutime intencita esti nomata
multnombraj tempoj kaj de multnombraj aliaj lokoj en
la programo.
Kiam kreante C funkcio, unu el la postuloj estas
specifi reveno valoro tipo.
La plej simpla kazo estas situacio kie la nomante
kodo ne estas koncernita kun la rezulto de la funkcio.
Tio povas esti la kazo kiam ni presi datumojn al la
uzanto ekrano, kiel kun printf.
En ĉi tiu kazo, ni povas deklari reveno valoro
esti de tipo malplena.
Uzanta void simple rakontas la tradukilo, ke neniu
valoro estos redonita.
Ni vidu kion ĉi aspektas.
>> Diru, ke ni havas funkcion nomita say_hello ke
prenas unu argumento.
Ni pasas la nomon de persono kaj tio montros saluton
en la ekrano.
La nomo estos de tipo char *.
Kaj ni precizigi ke la argumento.
Mia apliko ne bezonas scii kion estis presita aŭ se
estis presita.
Do la reveno valoro estos de tipo malplena.
Ĉi tiu funkcio povas presi al la ekrano per ordono
printf ("Saluton,% s \ n
», Nomo);.
La saluto estos montrata kaj kontrolo estos pasinta
dorso al la nomante kodo.
Unu afero noti estas ke kiam la reveno valoro tipo estas malplena,
vi ne bezonas inkluzivi revenon
deklaro en la funkcio.
Se vi elektas inkluzivas unu, ne inkludas revenon valoro
kiel argumento.
>> En iuj kazoj, havas sencon kaj redonas
valoro de funkcio.
Diru, ke ni skribas funkcio nomita add_floats.
Ni pasas du argumentoj, ambaŭ flosas,
nomita unua kaj dua.
Kaj rakontos al ni kion la sumo de tiuj kaleŝegoj estas.
Ni scias ke se ni aldonas du kaleŝegoj kune, la rezulto
estos kaleŝego.
Donita ke ni elektu revenon tipo de kaleŝego.
Ĉi tiu funkcio tion faros ŝtono kaj reveni
la valoroj en komunikaĵo kiel reveno
unua + dua;.
Kiam kontrolo pasis reen al la nomante kodo, la
rezultanta valoro estas nun disponebla por tiu kodo.
Ni povas gardi ĉi tiu valoro, ekzemple: float rezulto =
add_floats (3.14, 1.62
);.
Rezulto en tiu kazo estus nun enhavos la valoron 4,76.
>> Kiel memorigas, glitpunkta valoroj estas malpreciza.
Do, se ĉi tio estis financaj kalkulo, uzante dolaroj kaj
centonoj, ni volas konsideri preciza datumtipo kiel
INT kaj realigi la ŝtono en cendoj.
>> Alia kazo kie ni volus redoni valoro de
funkcio estas kiam ni volas scii se funkcio estis
prospera.
Se ĝi ne sukcesis, ni ankaŭ volas scii kion tipo de
Eraro okazis.
Diru, ke ni provas malfermi dosieron en disko por rakonti
la nombro da karakteroj en ĝi.
Se la dosiero ne povas esti malfermita, ni volas por povi halti kaj
diru al la uzanto pri la problemo.
>> Ni vokos nia funkcio count_file_chars kaj volo
preni unu argumento.
Ni pasas en la nomo de la dosiero uzante
char * nomas dosiernomo.
Ĉi tiu funkcio povas rigardi ion kiel ĉi tio.
En ĉi tiu ekzemplo, ni devus atendi la grafo revenis al
esti 0 aŭ pli.
Ĉi tio lasas al ni la negativaj entjeroj al
uzi kiel gardostaranto valoroj.
Al gardostaranto valoro estas simple speciala valoro kiu ne estas
leĝa datumoj sed ne transdoni informon.
Ĉi tie, se mi revenas al -1 por la nomi kodo, mi estas
fakte sendi la mesaĝon ke eraro okazis dum
provante atingi la dosieron.
Mi povis tiam kontrolu ke reveno valoro por determini se mia
funkcio alvoko sukcesis.
Se la numero estis 0 aŭ pli granda, mi konas la
nombro da signoj en la dosiero.
Se, tamen, la nombro estis malpli ol 0, mi povis simple
presi tiu problemo okazis.
Unu komerco-off konsideri estas ke per rezervante ĉiuj
negativaj valoroj kiel gardostaranto valoroj, supozante tiun estas
32-bita entjero, mi esence forprenis ĉirkaŭ
2 miliardoj ebla reveno valoroj.
>> Reiri valoro tipoj estas unu el la plej gravaj elementoj de
funkcio alvokoj.
Espereble ĉi tiu mallonga resumo helpis vi opinias pri
tri ŝlosilaj tipoj: nula, rezulto valoroj kaj gardostaranto valoroj,
kaj kiam ĉiu el la tri povus esti
taŭga en via kodo.
Dankon pro rigardante.