[Powered by Google Translate] CHRIS GERBER: funkce je série kroků, které v rámci
větší program, který je obvykle určen k tzv.
vícekrát a od různých jiných místech v
program.
Při vytváření funkce C, jeden z těchto požadavků je
určovat návratový typ hodnoty.
Nejjednodušší případ je situace, kdy volající
Kód se netýká výsledek funkce.
To může být případ, kdy jsme tisk dat na
uživatele displej, jako u printf.
V tomto případě, můžeme deklarovat hodnotu vrácení
být typu void.
Použití neplatné prostě říká kompilátoru, že ne
hodnota bude vrácena.
Pojďme se podívat, jak to vypadá.
>> Řekněme, že máme funkci nazvanou say_hello, že
přijímá jeden argument.
Budeme předat jméno osoby a zobrazí pozdrav
na obrazovce.
Název bude typu char *.
A budeme specifikovat, že jako argument.
Moje žádost nemusí vědět, co byl vytištěn nebo pokud jej
byl vytištěn.
Takže návratová hodnota bude typu void.
Tato funkce může tisknout na obrazovku s příkazem jako
printf ("Hello,% s \ n
", Name);.
Pozdrav se zobrazí a kontroly budou předány
zpět do volající kód.
Jedna věc k poznámce je, že když návratová hodnota typu je neplatný,
nemusíte zahrnovat návratnost
Prohlášení ve funkci.
Pokud se rozhodnete do jednoho, že nejsou uvedeny návratovou hodnotu
jako argument.
>> V některých případech, to dává smysl vrátit
hodnota z funkce.
Řekněme, že jsme psali funkci nazvanou add_floats.
Budeme předat dva argumenty, oba plováky,
tzv. první a druhé.
A to nám řekne, co součet těchto plováků je.
Víme, že pokud budeme přidat dva plováky dohromady, výsledek
bude float.
Vzhledem k tomu, že jsme si vybrat návratový typ float.
Tato funkce bude provést tento výpočet a vrátí
hodnoty v prohlášení, jako je návrat
první + druhý;.
Pokud je kontrola předána zpět volající kód,
Výsledná hodnota je nyní k dispozici k tomuto kódu.
Můžeme uložit tuto hodnotu jako tak: float výsledek =
add_floats (3,14, 1,62
);.
Výsledek v tomto případě by nyní obsahuje hodnotu 4,76.
>> Jako připomenutí, plovoucí bodové hodnoty jsou nepřesné.
Takže pokud to finanční kalkulace, pomocí dolarů a
centů, můžeme chtít, aby zvážila přesný typ dat, jako
int a provést výpočet v haléře.
>> Další případ, kdy budeme chtít vrátit hodnotu z
Funkce je, když chceme vědět, jestli funkce byla
úspěšný.
Pokud to nebylo úspěšné, můžeme také chtít vědět, jaký typ
Došlo k chybě.
Řekněme, že se snažíme otevřít soubor na disk počítat
počet znaků v něm.
Pokud soubor nelze otevřít, chceme být schopni zastavit a
sdělit uživateli o tomto problému.
>> Zavoláme naše funkce count_file_chars a bude
se jeden argument.
Budeme procházet v názvu souboru pomocí
char * filename volal.
Tato funkce může vypadat nějak takto.
V tomto příkladu, očekávali bychom, že počet se vrátil k
být 0 nebo více.
To ponechává nám negativní celá čísla
použít jako ověřovací hodnoty.
Sentinel hodnota je prostě zvláštní hodnota, která není
legitimní dat, ale to sdělit informaci.
Tady, když jsem se vrátit -1 do volající kód, jsem
skutečně odeslání zprávy, že došlo k chybě při
pokusu o přístup k souboru.
Mohl bych pak zjistit, že návratovou hodnotu určit, zda moje
Funkce volání bylo úspěšné.
Pokud jich bylo 0 nebo větší, bych já vím, že
počet znaků v souboru.
Je-li však počet byl nižší než 0, mohl prostě
vytisknout, že problém nastal.
Jeden trade-off je, aby zvážila, že rezervaci všechny
Negativní hodnoty jako ověřovací hodnoty, za předpokladu, že se jedná o
32-bit celé číslo, já jsem v podstatě vzali kolem
2000000000 možné návratové hodnoty.
>> Typy návratová hodnota jsou jedním z nejdůležitějších prvků
volání funkce.
Doufejme, že tento krátký přehled vám pomohl myslet
tři klíčové typy: void, výsledné hodnoty a ověřovací hodnoty,
a když každý z těchto tří může být
vhodné v kódu.
Díky za sledování.