[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.