[Powered by Google Translate] Funkce jsou části kódu používají v rámci většího programu
k provedení určitého úkolu.
Jsou také známy jako postupy, podprogramy a podprogramy,
protože ve skutečnosti jsou jen mini programy v rámci programů.
I když jste možná všimli,
jste určitě využili funkcí již pokud jste naprogramován v jazyce C.
Když píšete věci na obrazovce pomocí printf,
jste vlastně používáte funkci nazvanou printf.
Stejně tak, GetInt a GetString jsou funkce, které CS50 poskytuje pro vás.
Jak programátorů, používáme funkce pro z několika důvodů.
>> S funkcí provádět běžné úkoly jako je psaní na obrazovku
a vyzývá uživatele pro vstup šetří nám čas při programování.
To není nutné psát kód dělat ty stejné věci
protože jsou již pro nás udělal.
Není to ani nutné, abychom pochopili, jak přesně tyto funkce pracují interně.
Místo toho, jen musíme vědět, jak používat nebo na ně volat v našich programech.
Je to také užitečné psát funkce ve větších programů
i když nejste v plánu mít jiní používají je,
jen rozdělit větší úkol.
Tímto způsobem, můžete dát strukturu kódu podobně jako byste dát strukturu eseje,
a opravdu velké projekty zaktivujete více lidí
k práci na různých částech v současně
protože je to jasné, kde jedna osoba práce končí a další začíná to.
>> Funkce jsou obvykle v provozu na 1 nebo více vstupů, známý jako argumenty nebo parametry,
transformace těchto vstupů do výstupu hodnotu, která je pak vrácena.
Nicméně, to je také možné, že funkce, které nepoužívají žádné vstupní argumenty
a nevrací výstup.
Dobře, dost se načechraný věci.
Pojďme se podívat na některé reálných funkcí v C.
>> Zde máme funkci nazvanou čtverec, který, věřte tomu nebo ne,
vypočítá druhou mocninu vstupu.
Pojďme rozebrat syntaxi toho.
První slovo, které vidíte v funkci, int,
určuje návratový typ funkce, která je, typ C je funkce výstupu.
Tato funkce vypíše hodnotu s typu int.
Další slovo, které vidíte, je název funkce, náměstí v tomto případě.
Pojmenování funkce vhodně je důležité zejména
protože je to asi nejviditelnější dokumentaci toho, co funkce dělá.
To by mohlo být v pohodě pojmenovat tuto funkci Shazam nebo Booyah,
ale to by nám nic neřekne o tom, co funkce dělá.
>> Po název funkce přicházejí vstupy do funkce, argumenty.
Jsou uvedeny v souboru závorkách
jak s jejich typ a jméno používat pro ně v těle funkce.
Square trvá jen 1 argument, int na náměstí,
které jsem se rozhodl dát jméno x.
Tímto končí deklarace funkce nebo prototyp.
Složené závorky kolem zbytek funkce
označují začátek a konec těla funkce,
definice funkce samotné.
Náměstí je docela jednoduchá funkce.
Je to jen má 1 řádek, protože všechno, co musíme udělat, je násobit x sám.
Slovo return určuje výstupní hodnotu a spustí konec funkce.
Chcete-li použít funkci náměstí, musíme dodat příslušné vstupy
a pak zachycení výstupu.
Tady, vidíte několik způsobů, jak toho dosáhnout.
Můžeme projít v surovém int, jako je 6, nebo můžeme předat v proměnné, jako je.
Všimněte si, že pokaždé, když říkáme náměstí,
jsme zachytit výstup do proměnné a pak vytisknout.
Nicméně, nemáme uložit návratovou hodnotu do proměnné a poté vytisknout.
Mohli bychom poslat přímo do printf jako my, když jsme náměstí 10,
ale to přece neznamená, že nemáme přístup k návratové hodnoty náměstí 10
jinde v kódu.
Pojďme se podívat na další jednoduchý příklad.
>> Tentokrát budeme součet 2 plováky dohromady tak, že můžeme vidět, co funkce vypadá
když to má 2 vstupy, ne jen 1.
Jak můžete vidět, že to není moc odlišné.
Vše, co udělat, je přidat v 2. argumentu, float jménem b,
na seznamu argumentů pomocí čárku ji oddělit od první argument, plavat.
Takže naše náměstí a částka funkce jsou docela snadné pochopit
protože jsou rovnocenné funkce, které jste předtím neviděli v matiku.
Nyní se pojďme podívat na funkci, která je mírně odlišná.
Místo vrácení hodnoty, upraví stát.
Toto je známé jako nežádoucího účinku.
V tomto programu, funkce printf_fudd_style
má návratový typ, který jsme neviděli, void.
>> Void je říkával, že funkce nevrací nic.
Nejsou žádné proměnné typu void,
takže pokud se pokusíte vrátit něco z funkce, jako je printf_fudd_style,
kompilátor bude křičet na tebe.
Uvnitř printf_fudd_style, vidíme, že zatímco funkce stále provádí úkol,
sice, přepnutí všech R na Ws,
bod funkce je změnit řetězec a pak vytisknout na obrazovce,
změnu stavu programu namísto vrací výsledek.
Pomocí této funkce je velmi podobný pomocí našeho náměstí a součet funkce,
kromě nemáme uložit výsledek do proměnné, nebo předat ho na jinou funkci
protože není výsledkem mluvit.
Takže, když jsme kompilovat a spouštět náš Elmer Fudd programu,
uvidíte, že "Ty rascally králík!" dostane transformovala právo
"Ty wascally Wabbit!"
>> Konečně, tam je 1 další funkce stojí za diskusi
protože jste dosud používali ji v každém programu C, které jste kdy napsal, hlavní.
Hlavní je funkce podobně jako každý jiný.
Je to má návratový typ, jméno, seznam argumentů, a tělo.
Návratový typ main je vždy int,
a to int se používá pro komunikaci stavu programu při jeho dokončení.
>> Bylo to úspěšně spustit, nebo to skončilo předčasně kvůli chybě?
Návratu na nulu označuje úspěšný běh,
a vrácení jakékoli nenulovou hodnotu označuje chybu.
V závislosti na druhu programu píšete,
vrací různé kódy pro různé chyby mohou být užitečné
pro lidi, kteří používají svůj program později.
Síťové argumenty jsou trochu složitější.
>> Seznam argumentů může být buď prázdný,
které jsme uveďte písemně prázdnotu mezi závorky,
nebo seznam může mít 2 argumenty: int a pole * char s.
Tito jsou používáni když váš program má v úmyslu použít
argumenty prošel v na příkazovém řádku, když je vyvolána program.
Int argument je obvykle nazývá argc,
a to je roven délce char * pole, známý jako argv.
Argv obsahuje argumenty příkazového řádku předávány do programu.
V další krátký, budeme mluvit o tom, jak používat tyto proměnné podrobněji.
Pro tuto chvíli, můžete bez obav prohlásit, hlavní v obou směrech.
I typicky vybrat napsat ji z kratší cestu, bez argumentů, pokud je to možné.
>> Nyní, když víte, jak psát funkce,
jste na dobré cestě k rozvoji větší, složitější programy.
Mé jméno je Nate Hardison. To je CS50.