A funkce v C je sada příkazů, které při volání provádějí nějaký konkrétní úkol. Je to základní stavební blok programu C, který poskytuje modularitu a znovupoužitelnost kódu. Programovací příkazy funkce jsou přiloženy { } složené závorky , které mají určité významy a provádějí určité operace. V jiných jazycích se jim také říká podprogramy nebo procedury.
V tomto článku se dozvíme o funkcích, definici funkcí. deklarace, argumenty a parametry, návratové hodnoty a mnoho dalších.
Syntaxe funkcí v C
Syntaxi funkce lze rozdělit do 3 aspektů:
- Deklarace funkce Definice funkce Volání funkce
Prohlášení o funkci
V deklaraci funkce musíme uvést název funkce, její návratový typ a počet a typ jejích parametrů. Deklarace funkce říká kompilátoru, že někde jinde v programu existuje funkce s daným názvem.
Syntax
return_type name_of_the_function ( parameter_1 , parameter_2 );>
Název parametru není povinný při deklaraci funkcí. Funkci můžeme deklarovat i bez použití názvu datových proměnných.
Příklad
int sum (int a , int b ); int sum (int , int);>

Deklarace funkce
Poznámka: Funkce v C musí být vždy před voláním deklarována globálně.
Definice funkce
Definice funkce se skládá ze skutečných příkazů, které se provádějí, když je funkce volána (tj. když k funkci přichází ovládání programu).
Funkce C je obecně definována a deklarována v jediném kroku, protože definice funkce vždy začíná deklarací funkce, takže ji nemusíme explicitně deklarovat. Níže uvedený příklad slouží jako definice funkce i deklarace.
return_type function_name (para1_type para1_name, para2_type para2_name ) { // body of the function }> 
Definice funkce v C
Volání funkce
Volání funkce je příkaz, který dává kompilátoru pokyn k provedení funkce. Ve volání funkce používáme název funkce a parametry.
V níže uvedeném příkladu je volána první součtová funkce a 10,30 je předáno součtové funkci. Po volání funkce je vrácen součet aab a řízení je také vráceno zpět do hlavní funkce programu.

Fungování funkce v C
Poznámka: Volání funkce je nezbytné pro převedení řízení programu do definice funkce. Pokud není zavoláno, příkazy funkce nebudou provedeny.
Příklad funkce 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;> }> |
>
formátovat datum na řetězec
>Výstup
Sum is: 40>
Jak jsme si všimli, nepoužili jsme explicitní deklaraci funkce. Jednoduše jsme definovali a zavolali funkci.
Typ návratu funkce
Návratový typ funkce říká, jaký typ hodnoty je vrácen po provedení všech funkcí. Když nechceme vracet hodnotu, můžeme použít datový typ void.
Příklad:
int func(parameter_1,parameter_2);>
Výše uvedená funkce vrátí celočíselnou hodnotu po spuštění příkazů uvnitř funkce.
Poznámka: Z funkce C lze vrátit pouze jednu hodnotu. Abychom vrátili více hodnot, musíme použít ukazatele nebo struktury.
Funkční argumenty
Argumenty funkcí (také známé jako parametry funkcí) jsou data, která jsou předávána funkci.
Příklad:
int function_name(int var1, int var2);>
Podmínky vrácení Typy a argumenty
V programovacím jazyce C lze funkce volat buď s argumenty, nebo bez nich a mohou vracet hodnoty. Mohou nebo nemusí vracet hodnoty volajícím funkcím.
python uložit json do souboru
- Funkce bez argumentů a návratové hodnoty
- Funkce bez argumentů as návratovou hodnotou
- Funkce s argumentem a bez návratové hodnoty
- Funkce s argumenty a návratovou hodnotou
Další informace o argumentech a návratových hodnotách funkcí naleznete v článku – Argumenty funkcí a návratové hodnoty v jazyce C .
Jak funguje funkce C?
Fungování funkce C lze rozdělit do následujících kroků, jak je uvedeno níže:
- Deklarace funkce: Deklarace funkce je krok, kdy deklarujeme funkci. Zde definujeme návratové typy a parametry funkce.
- Definování funkce: Volání funkce: Volání funkce je krok, kdy funkci voláme předáním argumentů ve funkci. Provedení funkce: Provedení funkce je krok, ve kterém můžeme spustit všechny příkazy uvnitř funkce, abychom získali konečný výsledek. Vrácení hodnoty: Vrácení hodnoty je krok, kdy je vrácena vypočítaná hodnota po provedení funkce. Ukončení funkce je posledním krokem, kdy je zničena veškerá paměť přidělená proměnným, funkcím atd., než se dá plnou kontrolu nad hlavní funkcí.
Typy funkcí
V C jsou dva typy funkcí:
- Knihovní funkce Uživatelem definované funkce

Typy funkcí v C
1. Funkce knihovny
Knihovní funkce je také označována jako a vestavěná funkce . Již existuje balíček kompilátoru, který obsahuje tyto funkce, z nichž každá má specifický význam a je součástí balíčku. Vestavěné funkce mají tu výhodu, že jsou přímo použitelné, aniž by byly definovány, zatímco uživatelsky definované funkce musí být deklarovány a definovány před použitím.
Například:
pow(), sqrt(), strcmp(), strcpy() etc.>
Výhody funkcí knihovny C
- Funkce knihovny C se snadno používají a jsou optimalizovány pro lepší výkon.
- Funkce knihovny C šetří spoustu času, tj. čas na vývoj funkcí.
- Funkce knihovny C jsou pohodlné, protože vždy fungují.
Příklad:
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ýstup
The Square root of 49.00 = 7.00>
2. Uživatelem definovaná funkce
Funkce, které programátor vytváří, jsou známé jako uživatelsky definované funkce resp funkce na míru . Uživatelsky definované funkce lze vylepšit a upravit podle potřeby programátora. Kdykoli píšeme funkci, která je specifická pro případ a není definována v žádném hlavičkovém souboru, musíme deklarovat a definovat vlastní funkce podle syntaxe.
Výhody uživatelsky definovaných funkcí
- Vyměnitelné funkce lze upravit podle potřeby.
- Kód těchto funkcí je opakovaně použitelný v jiných programech.
- Tyto funkce lze snadno pochopit, ladit a udržovat.
Pří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ýstup
Sum is: 70>
Předávání parametrů funkcím
Data předaná při vyvolání funkce jsou známá jako skutečné parametry. V níže uvedeném programu jsou 10 a 30 známé jako skutečné parametry. Formální parametry jsou proměnná a datový typ, jak je uvedeno v deklaraci funkce. V níže uvedeném programu jsou aab známé jako formální parametry.

Předávání parametrů funkcím
Argumenty můžeme funkci C předat dvěma způsoby:
- Projděte kolem hodnoty
- Pass by Reference
1. Předejte hodnotu
Předávání parametrů v této metodě zkopíruje hodnoty ze skutečných parametrů do parametrů formálních funkcí. V důsledku toho se jakékoli změny provedené uvnitř funkcí neodrazí v parametrech volajícího.
Pří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;> }> |
>
>
chromový adresní řádekVýstup
Before swap Value of var1 and var2 is: 3, 2 After swap Value of var1 and var2 is: 3, 2>
2. Předejte referenci
Skutečné parametry volajícího a skutečné parametry funkce se vztahují ke stejným umístěním, takže jakékoli změny provedené uvnitř funkce se projeví ve skutečných parametrech volajícího.
Pří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ýstup
Before swap Value of var1 and var2 is: 3, 2 After swap Value of var1 and var2 is: 2, 3>
Výhody funkcí v C
Funkce v C je velmi užitečná funkce C s mnoha výhodami, jak je uvedeno níže:
- Funkce může omezit opakování stejných příkazů v programu.
- Funkce činí kód čitelným tím, že našemu programu poskytuje modularitu.
- Neexistuje žádný pevný počet funkcí volání, které lze volat tolikrát, kolikrát chcete.
- Funkce zmenší velikost programu.
- Jakmile je funkce deklarována, můžete ji použít, aniž byste přemýšleli o vnitřním fungování funkce.
Nevýhody funkcí v C
Zde jsou hlavní nevýhody funkcí v C:
- Nelze vrátit více hodnot.
- Paměťová a časová režie kvůli alokaci rámců zásobníku a přenosu řízení programu.
Závěr
V tomto článku jsme diskutovali o následujících bodech o funkci, jak je uvedeno níže:
localdate java
- Funkce je blok kódu, který lze v programu použít tolikrát, kolikrát chceme.
- Abychom mohli použít funkci, musíme funkci zavolat.
- Deklarace funkce obsahuje název_funkce, návratový typ a parametry.
- Definice funkce zahrnuje tělo funkce.
- Funkce je dvou typů, uživatelsky definovaná funkce a knihovní funkce.
- Ve funkci můžeme podle dvou typů volat hodnotou a volat odkazem podle předávaných hodnot.
Nejčastější dotazy k funkcím v C
Q1. Definujte funkce.
Odpovědět:
Funkce jsou blok kódu, který se provádí pokaždé, když jsou volány během provádění programu.
Q2. Co je to předběžná deklarace?
Odpovědět:
Někdy definujeme funkci po jejím volání, aby byla lépe srozumitelná. V takových případech deklarujeme funkci před jejich definicí a voláním. Takové prohlášení se nazývá Forward Declaration.
Q3. Jaký je rozdíl mezi deklarací funkce a definicí?
Odpovědět:
Data jako název funkce, návratový typ a parametr jsou zahrnuty v deklaraci funkce, zatímco definice je tělem funkce. Všechna tato data jsou sdílena s kompilátorem podle jejich odpovídajících kroků.
Q4. Jaký je rozdíl mezi argumenty funkce a parametry?
Odpovědět:
Funkční parametry jsou hodnoty deklarované v deklaraci funkce. Zatímco argumenty funkce jsou hodnoty, které jsou předány ve funkci během volání funkce.
Příklad:
int func(int x,int y); func(10,20);>Zde jsou int x a int y parametry, zatímco 10 a 20 jsou argumenty předané funkci.
Chcete-li se o tom dozvědět více, podívejte se na tento článek – Rozdíl mezi argumenty a parametry v C .
Q5. Můžeme z funkce C vrátit více hodnot?
Odpovědět:
Ne, obecně není možné vrátit více hodnot z funkce. Ale můžeme použít obojí ukazatele do statických nebo haldových paměťových míst, abychom vrátili více hodnot, nebo můžeme data vložit do struktura a poté strukturu vrátit.
Chcete-li se o tom dozvědět více, přečtěte si tento článek – Jak vrátit více hodnot z funkce v C nebo C++?
Q6. Jaký je skutečný a formální parametr?
Odpovědět:
Formální parametr: Proměnné deklarované v prototypu funkce jsou známé jako formální argumenty nebo parametry.
Skutečný parametr: Hodnoty předávané ve funkci jsou známé jako skutečné argumenty nebo parametry.