V tejto príručke sa naučíte vytvárať používateľom definované funkcie v programovaní C pomocou príkladu.
Funkcia je blok kódu, ktorý vykonáva konkrétnu úlohu.
C vám umožňuje definovať funkcie podľa vašich potrieb. Tieto funkcie sú známe ako užívateľom definované funkcie. Napríklad:
Predpokladajme, že musíte vytvoriť kruh a vyfarbiť ho v závislosti od polomeru a farby. Na vyriešenie tohto problému môžete vytvoriť dve funkcie:
createCircle()
funkciacolor()
funkcia
Príklad: Užívateľom definovaná funkcia
Tu je príklad na pridanie dvoch celých čísel. Na vykonanie tejto úlohy sme vytvorili užívateľom definované addNumbers()
.
#include int addNumbers(int a, int b); // function prototype int main() ( int n1,n2,sum; printf("Enters two numbers: "); scanf("%d %d",&n1,&n2); sum = addNumbers(n1, n2); // function call printf("sum = %d",sum); return 0; ) int addNumbers(int a, int b) // function definition ( int result; result = a+b; return result; // return statement )
Funkčný prototyp
Prototyp funkcie je jednoducho deklarácia funkcie, ktorá špecifikuje jej názov, parametre a návratový typ. Neobsahuje funkčné telo.
Prototyp funkcie dáva kompilátoru informácie, že funkcia môže byť neskôr použitá v programe.
Syntax prototypu funkcie
returnType functionName (typ1 argument1, typ2 argument2, …);
Vo vyššie uvedenom príklade int addNumbers(int a, int b);
je prototyp funkcie, ktorý kompilátoru poskytuje nasledujúce informácie:
- názov funkcie je
addNumbers()
- návratový typ funkcie je
int
int
funkcii sa odovzdajú dva argumenty typu
Prototyp funkcie nie je potrebný, ak je pred main()
funkciou definovaná používateľom definovaná funkcia.
Volanie funkcie
Ovládanie programu sa prenáša na užívateľom definovanú funkciu jeho volaním.
Syntax volania funkcie
functionName (argument1, argument2, …);
Vo vyššie uvedenom príklade sa volanie funkcie uskutočňuje pomocou addNumbers(n1, n2);
príkazu vo vnútri main()
funkcie.
Definícia funkcie
Definícia funkcie obsahuje blok kódu na vykonanie konkrétnej úlohy. V našom príklade sčítanie dvoch čísel a ich vrátenie.
Syntax definície funkcie
returnType functionName (typ1 argument1, typ2 argument2, …) (// telo funkcie)
Po vyvolaní funkcie sa riadenie programu prenesie do definície funkcie. A kompilátor začne vykonávať kódy v tele funkcie.
Odovzdávanie argumentov funkcii
V programovaní argument odkazuje na premennú odovzdanú funkcii. Vo vyššie uvedenom príklade sa počas hovoru funkcie odovzdajú dve premenné n1 a n2.
Parametre a a b prijímajú odovzdané argumenty v definícii funkcie. Tieto argumenty sa nazývajú formálne parametre funkcie.
Typ argumentov odovzdaných funkcii a formálne parametre sa musia zhodovať, inak kompilátor spôsobí chybu.
Ak je n1 typu char, tiež by malo byť typu char. Ak je n2 typu float, premenná b by tiež mala byť typu float.
Funkciu je možné zavolať aj bez zadania argumentu.
Vyhlásenie o vrátení tovaru
Príkaz return ukončí vykonávanie funkcie a vráti hodnotu volajúcej funkcii. Riadenie programu sa po vyhlásení o návrate prenesie do volajúcej funkcie.
Vo vyššie uvedenom príklade sa hodnota výslednej premennej vráti hlavnej funkcii. Tejto main()
hodnote je priradená premenná súčet vo funkcii.
Syntax príkazu na vrátenie
návrat (výraz);
Napríklad,
vrátiť a; návrat (a + b);
Typ hodnoty vrátenej z funkcie a návratový typ uvedený v prototype funkcie a definícii funkcie sa musia zhodovať.
Na tejto stránke nájdete ďalšie informácie o odovzdávaní argumentov a vracaní hodnoty z funkcie.