C Užívateľom definované funkcie

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() funkcia
  • color() 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:

  1. názov funkcie je addNumbers()
  2. návratový typ funkcie je int
  3. intfunkcii 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.

Zaujímavé články...