logo

C funkcie

A funkcia v C je súbor príkazov, ktoré pri volaní vykonávajú nejakú špecifickú úlohu. Je to základný stavebný blok programu C, ktorý poskytuje modularitu a znovupoužiteľnosť kódu. Programovacie príkazy funkcie sú priložené { } zátvorky , ktoré majú určité významy a vykonávajú určité operácie. V iných jazykoch sa nazývajú aj podprogramy alebo procedúry.

V tomto článku sa dozvieme o funkciách, definícii funkcií. deklarácia, argumenty a parametre, návratové hodnoty a mnoho ďalších.

Syntax funkcií v C

Syntax funkcie možno rozdeliť do 3 aspektov:



    Deklarácia funkcie Definícia funkcie Volania funkcie

Funkčné vyhlásenia

V deklarácii funkcie musíme uviesť názov funkcie, jej návratový typ a počet a typ jej parametrov. Deklarácia funkcie hovorí kompilátoru, že niekde inde v programe existuje funkcia s daným názvom.

Syntax

return_type name_of_the_function  ( parameter_1 , parameter_2 );>

Názov parametra nie je povinný pri deklarovaní funkcií. Funkciu môžeme deklarovať aj bez použitia názvu dátových premenných.

Príklad

int sum (int a , int b ); int sum (int , int);>
Vyhlásenie o funkcii

Vyhlásenie o funkcii

Poznámka: Funkcia v C musí byť vždy pred volaním deklarovaná globálne.

Definícia funkcie

Definícia funkcie pozostáva zo skutočných príkazov, ktoré sa vykonajú, keď je funkcia zavolaná (t. j. keď k funkcii príde ovládanie programu).

Funkcia C je vo všeobecnosti definovaná a deklarovaná v jednom kroku, pretože definícia funkcie vždy začína deklaráciou funkcie, takže ju nemusíme explicitne deklarovať. Nižšie uvedený príklad slúži ako definícia funkcie aj ako deklarácia.

return_type function_name (para1_type  para1_name,  para2_type  para2_name ) { // body of the function }>
Definícia funkcie v C

Definícia funkcie v C

Volanie funkcie

Volanie funkcie je príkaz, ktorý dáva kompilátoru pokyn na vykonanie funkcie. Vo volaní funkcie používame názov funkcie a parametre.

V nižšie uvedenom príklade sa volá prvá súčtová funkcia a 10,30 sa prenesie do súčtovej funkcie. Po zavolaní funkcie je vrátený súčet aab a riadenie je tiež vrátené späť do hlavnej funkcie programu.

Fungovanie funkcie v C

Fungovanie funkcie v C

Poznámka: Volanie funkcie je nevyhnutné na prenesenie ovládania programu do definície funkcie. Ak sa nezavolá, príkazy funkcie sa nevykonajú.

Príklad funkcie C

C




// C program to show function> // call and definition> #include> // Function that takes two parameters> // a and b as inputs and returns> // their sum> int> sum(>int> a,>int> b)> {> >return> a + b;> }> // Driver code> int> main()> {> >// Calling sum function and> >// storing its value in add variable> >int> add = sum(10, 30);> > >printf>(>'Sum is: %d'>, add);> >return> 0;> }>

>

zarovnanie obrázkov v css
>

Výkon

Sum is: 40>

Ako sme si všimli, nepoužili sme explicitnú deklaráciu funkcie. Funkciu sme jednoducho definovali a zavolali.

Typ návratu funkcie

Typ návratu funkcie hovorí, aký typ hodnoty sa vráti po vykonaní všetkých funkcií. Ak nechceme vrátiť hodnotu, môžeme použiť typ údajov void.

Príklad:

int func(parameter_1,parameter_2);>

Vyššie uvedená funkcia vráti celočíselnú hodnotu po spustení príkazov vo funkcii.

Poznámka: Z funkcie C možno vrátiť iba jednu hodnotu. Na vrátenie viacerých hodnôt musíme použiť ukazovatele alebo štruktúry.

Funkcia Argumenty

Argumenty funkcie (tiež známe ako parametre funkcie) sú údaje, ktoré sa odovzdávajú funkcii.

Príklad:

int function_name(int var1, int var2);>

Podmienky vrátenia Typy a argumenty

V programovacom jazyku C možno funkcie volať s argumentmi alebo bez nich a môžu vracať hodnoty. Môžu alebo nemusia vrátiť hodnoty volajúcim funkciám.

  1. Funkcia bez argumentov a návratovej hodnoty
  2. Funkcia bez argumentov a s návratovou hodnotou
  3. Funkcia s argumentom a bez návratovej hodnoty
  4. Funkcia s argumentmi a návratovou hodnotou

Viac informácií o funkciách Argumenty a návratové hodnoty nájdete v článku – Argumenty funkcií a návratové hodnoty v jazyku C .

Ako funguje funkcia C?

Fungovanie funkcie C možno rozdeliť do nasledujúcich krokov, ako je uvedené nižšie:

    Deklarácia funkcie: Deklarácia funkcie je krok, v ktorom deklarujeme funkciu. Tu definujeme návratové typy a parametre funkcie.
  1. Definovanie funkcie:
  2. Volanie funkcie: Volanie funkcie je krok, kedy funkciu voláme odovzdaním argumentov vo funkcii. Vykonanie funkcie: Vykonanie funkcie je krok, v ktorom môžeme spustiť všetky príkazy vo funkcii, aby sme získali konečný výsledok. Vrátenie hodnoty: Vrátenie hodnoty je krok, v ktorom sa vráti vypočítaná hodnota po vykonaní funkcie. Opustenie funkcie je posledným krokom, pri ktorom sa zničí všetka pamäť pridelená premenným, funkciám atď. predtým, ako získate úplnú kontrolu nad hlavnou funkciou.

Typy funkcií

V C sú dva typy funkcií:

    Funkcie knižnice Používateľom definované funkcie
Typy funkcií

Typy funkcií v C

1. Funkcia knižnice

Funkcia knižnice sa tiež označuje ako a vstavaná funkcia . Už existuje balík kompilátora, ktorý obsahuje tieto funkcie, pričom každá z nich má špecifický význam a je súčasťou balíka. Vstavané funkcie majú tú výhodu, že sú priamo použiteľné bez toho, aby boli definované, zatiaľ čo užívateľom definované funkcie musia byť pred použitím deklarované a definované.

Napríklad:

pow(), sqrt(), strcmp(), strcpy() etc.>

Výhody funkcií knižnice C

  • Funkcie knižnice C sa ľahko používajú a sú optimalizované pre lepší výkon.
  • Funkcie knižnice C šetria veľa času, tj čas vývoja funkcií.
  • Funkcie knižnice C sú pohodlné, pretože vždy fungujú.

Príklad:

java localdatetime

C




// C program to implement> // the above approach> #include> #include> // Driver code> int> main()> {> >double> Number;> >Number = 49;> >// Computing the square root with> >// the help of predefined C> >// library function> >double> squareRoot =>sqrt>(Number);> > >printf>(>'The Square root of %.2lf = %.2lf'>,> >Number, squareRoot);> >return> 0;> }>

>

>

Výkon

The Square root of 49.00 = 7.00>

2. Funkcia definovaná používateľom

Funkcie, ktoré programátor vytvára, sú známe ako funkcie definované používateľom resp funkcie na mieru . Používateľom definované funkcie je možné vylepšovať a upravovať podľa potreby programátora. Kedykoľvek píšeme funkciu, ktorá je špecifická pre prípad a nie je definovaná v žiadnom hlavičkovom súbore, musíme deklarovať a definovať vlastné funkcie podľa syntaxe.

Výhody užívateľsky definovaných funkcií

  • Vymeniteľné funkcie je možné upraviť podľa potreby.
  • Kód týchto funkcií je opätovne použiteľný v iných programoch.
  • Tieto funkcie sa dajú ľahko pochopiť, ladiť a udržiavať.

Príklad:

C




// C program to show> // user-defined functions> #include> int> sum(>int> a,>int> b)> {> >return> a + b;> }> // Driver code> int> main()> {> >int> a = 30, b = 40;> > >// function call> >int> res = sum(a, b);> >printf>(>'Sum is: %d'>, res);> >return> 0;> }>

>

>

Výkon

Sum is: 70>

Odovzdávanie parametrov do funkcií

Údaje odovzdané pri vyvolaní funkcie sú známe ako aktuálne parametre. V nižšie uvedenom programe sú 10 a 30 známe ako skutočné parametre. Formálne parametre sú premenná a typ údajov, ako je uvedené v deklarácii funkcie. V nižšie uvedenom programe sú a a b známe ako formálne parametre.

Odovzdávanie parametrov do funkcií

Odovzdávanie parametrov do funkcií

Argumenty funkcie C môžeme odovzdať dvoma spôsobmi:

  1. Prejdite okolo hodnoty
  2. Prejdite podľa referencie

1. Prejdite okolo hodnoty

Odovzdávanie parametrov v tejto metóde kopíruje hodnoty z aktuálnych parametrov do parametrov formálnej funkcie. V dôsledku toho sa akékoľvek zmeny vykonané vo funkciách neodrážajú v parametroch volajúceho.

Príklad:

C




// C program to show use> // of call by value> #include> void> swap(>int> var1,>int> var2)> {> >int> temp = var1;> >var1 = var2;> >var2 = temp;> }> // Driver code> int> main()> {> >int> var1 = 3, var2 = 2;> >printf>(>'Before swap Value of var1 and var2 is: %d, %d '>,> >var1, var2);> >swap(var1, var2);> >printf>(>'After swap Value of var1 and var2 is: %d, %d'>,> >var1, var2);> >return> 0;> }>

>

>

chrome adresný riadok
Výkon

Before swap Value of var1 and var2 is: 3, 2 After swap Value of var1 and var2 is: 3, 2>

2. Pass by Reference

Skutočné parametre volajúceho a skutočné parametre funkcie sa vzťahujú na rovnaké miesta, takže všetky zmeny vykonané vo funkcii sa premietnu do skutočných parametrov volajúceho.

Príklad:

C




// C program to show use of> // call by Reference> #include> void> swap(>int> *var1,>int> *var2)> {> >int> temp = *var1;> >*var1 = *var2;> >*var2 = temp;> }> // Driver code> int> main()> {> >int> var1 = 3, var2 = 2;> >printf>(>'Before swap Value of var1 and var2 is: %d, %d '>,> >var1, var2);> >swap(&var1, &var2);> >printf>(>'After swap Value of var1 and var2 is: %d, %d'>,> >var1, var2);> >return> 0;> }>

>

>

Výkon

Before swap Value of var1 and var2 is: 3, 2 After swap Value of var1 and var2 is: 2, 3>

Výhody funkcií v C

Funkcie v C sú veľmi užitočnou vlastnosťou C s mnohými výhodami, ako je uvedené nižšie:

  1. Funkcia môže znížiť opakovanie rovnakých príkazov v programe.
  2. Funkcia robí kód čitateľným tým, že nášmu programu poskytuje modularitu.
  3. Neexistuje žiadny pevný počet funkcií volania, ktoré možno volať toľkokrát, koľkokrát chcete.
  4. Funkcia znižuje veľkosť programu.
  5. Akonáhle je funkcia deklarovaná, môžete ju použiť bez toho, aby ste premýšľali o internom fungovaní funkcie.

Nevýhody funkcií v C

Nasledujú hlavné nevýhody funkcií v C:

  1. Nie je možné vrátiť viacero hodnôt.
  2. Pamäťová a časová réžia v dôsledku prideľovania zásobníkových rámcov a prenosu riadenia programu.

Záver

V tomto článku sme diskutovali o nasledujúcich bodoch o funkcii, ako je uvedené nižšie:

logika prvého poriadku
  1. Funkcia je blok kódu, ktorý možno v programe použiť toľkokrát, koľkokrát chceme.
  2. Aby sme mohli použiť funkciu, musíme ju zavolať.
  3. Deklarácia funkcie obsahuje názov_funkcie, návratový typ a parametre.
  4. Definícia funkcie zahŕňa telo funkcie.
  5. Funkcia je dvojakého typu, užívateľsky definovaná funkcia a knižničná funkcia.
  6. Vo funkcii môžeme podľa dvoch typov volať hodnotou a volať odkazom podľa odovzdaných hodnôt.

Časté otázky o funkciách v C

Q1. Definujte funkcie.

odpoveď:

Funkcie sú blok kódu, ktorý sa vykoná vždy, keď sa zavolajú počas vykonávania programu.

Q2. Čo je to predbežné vyhlásenie?

odpoveď:

Niekedy definujeme funkciu až po jej volaní, aby bola lepšia čitateľnosť. V takýchto prípadoch deklarujeme funkciu pred ich definíciou a volaním. Takéto vyhlásenie sa nazýva Forward Declaration.

Q3. Aký je rozdiel medzi deklaráciou funkcie a definíciou?

odpoveď:

Údaje ako názov funkcie, návratový typ a parameter sú zahrnuté v deklarácii funkcie, zatiaľ čo definícia je telom funkcie. Všetky tieto údaje sú zdieľané s kompilátorom podľa ich zodpovedajúcich krokov.

Q4. Aký je rozdiel medzi argumentmi funkcie a parametrami?

odpoveď:

Parametre funkcie sú hodnoty deklarované v deklarácii funkcie. Zatiaľ čo argumenty funkcie sú hodnoty, ktoré sa odovzdávajú vo funkcii počas volania funkcie.

Príklad:

 int func(int x,int y); func(10,20);>

Int x a int y sú parametre, zatiaľ čo 10 a 20 sú argumenty odovzdané funkcii.

Ak sa chcete dozvedieť viac, pozrite si tento článok – Rozdiel medzi argumentmi a parametrami v C .

Q5. Môžeme vrátiť viacero hodnôt z funkcie C?

odpoveď:

Nie, vo všeobecnosti nie je možné vrátiť viacero hodnôt z funkcie. Ale môžeme použiť buď ukazovatele do statických alebo haldových pamäťových miest, aby sme vrátili viacero hodnôt, alebo môžeme dáta vložiť do štruktúru a potom vráťte štruktúru.

Ak sa chcete dozvedieť viac, pozrite si tento článok – Ako vrátiť viacero hodnôt z funkcie v C alebo C++?

Q6. Aký je skutočný a formálny parameter?

odpoveď:

Formálny parameter: Premenné deklarované v prototype funkcie sú známe ako formálne argumenty alebo parametre.

Skutočný parameter: Hodnoty, ktoré sa odovzdávajú vo funkcii, sú známe ako skutočné argumenty alebo parametre.