Funkce

Doplňující informace

Funkce jsou osamostatněné části programu, které "komunikují" s ostatními funkcemi prostřednictvím volání funkcí. Volání funkce vede k provedení jejího těla (posloupnosti příkazů). Vstupem funkce jsou její parametry, výstupem pak návratová hodnota funkce. Pro úplnost dodáme, že také int main() je funkce (tzv. hlavní funkce programu).

Deklarace funkce

Jedná se o specifikaci identifikátoru funkce, typů parametrů a návratové hodnoty dané funkce. Tyto informace potřebuje překladač k ověření, zda je daná funkce v následujícím kódu volána korektně. Deklarace funkcí bývá zvykem psát před definice funkcí (viz níže) v daném souboru.

Syntaxe:

typ_navrat id_fce(typ_1, ..., typ_N);

kde typ_navrat je datový typ odpovídající návratové hodnotě, typ_1typ_N jsou datové typy odpovídající typům parametrů a id_fce je identifikátor funkce (jméno funkce).

Příklady:

double sqrt(double); /* deklarace funkce pro výpočet druhé odpocniny v math.h */
size_t strlen(char *); /* deklarace funkce pro výpočet délky řetězce v string.h */
int moje_fce(int, char []); /* deklarace vlastní funkce s parametry typu int a pole typu char */

Definice funkce

K údajům požadovaným při deklaraci jsou navíc přidány identifikátory formálních parametrů a tělo funkce (příkazy). Uvnitř těla funkce přistupujeme k parametrům jako k proměnným s identifikátorem odpovídajícím identifikátoru formálního parametru. Ukončení provádění funkce a nastavení návratové hodnoty provedeme příkazem return, který se může nacházet na libovolném místě v těle funkce.

Syntaxe:

typ_navrat id_fce(typ_1 id_1, ..., typ_N název_N)
{ příkazy těla funkce }

Příklad:

unsigned int delka(char str[]){
   unsigned int index = 0;
   while (str[index] != '\0') index++;
   return index;
}

Volání funkce

Volání funkce provedeme pomocí operátoru volání funkce () uvedeným za identifikátorem dané funkce, přičemž uvnitř závorek uvedeme skutečné parametry volání funkce oddělené čárkou. Volání funkce se může nacházet uvnitř složitějšího výrazu, je tak možné dále využít návratovou hodnotu volané funkce.

Příklady:

int d = delka("Ahoj!");
printf("%i\n", delka("Ahoj!"));

Creative Commons License Sbírka úloh z jazyka C. © Katedra informatiky Univerzity Palackého v Olomouci, 2009.
Projekt byl vytvořen za podpory grantu FRVŠ 2061/2009/G1.