Vše, co potřebujete vědět o funkcích v jazyce C?



Tento článek vám představí jednoduchý, ale velmi zásadní a důležitý koncept, který je Functions in C, a naváže na něj s ukázkou.

Tento článek vám představí jednoduché, ale velmi zásadní a důležité koncept, který je funkcí v C a navazuje na něj s ukázkou. V tomto článku se budeme zabývat následujícími ukazateli,

Funkce jsou stavebními kameny libovolného programovacího jazyka. Jednoduše řečeno, funkce v sadě příkazů, která přijímá vstupy, provádí konkrétní úkol a poté vrací výstup.
Ideologie, která stojí za vytvořením funkce, je spojit sadu souvisejícího prohlášení, která provádí konkrétní úkol. Takže pro různou sadu vstupů nemusíte psát stejný kód několikrát. Musíte jen zavolat funkci pro různé vstupy, provede zadaný úkol pro daný vstup a vrátí výstup. Funkci můžete volat tolikrát, kolikrát chcete. V tomto blogu se naučíme každou nuanci o funkcích v programovacím jazyce C.





Začněme nejzásadnější otázkou.

Co jsou funkce v jazyce C?

Funkce jsou v jazyce C stejné jako v jakémkoli jiném programovacím jazyce. Jedná se o sadu kódů, které se vážou k provedení konkrétního úkolu. Sada kódu, který má být spuštěn, je uvedena ve složených závorkách, tj. „{}“.



Než se naučíme psát funkci v jazyce C, nejdříve pochopíme, jaké jsou výhody.

Výhody funkcí v C

Výhody funkcí jsou společné ve všech programovacích jazycích.
Hlavní myšlenkou funkce je snížit redundanci v kódu. Předpokládejme, že máte funkčnost, kterou je třeba v programu provést vícekrát, takže místo toho, abyste ji psali vícekrát, můžete pro tento úkol vytvořit funkci a volat ji tolikrát, kolikrát chcete. Další skrytou výhodou je, že pokud se následně změní logika vaší funkce, nemusíte ji měnit a měnit ji na více místech. Musíte pouze změnit kód na jednom místě (tj. Ve funkci) a projeví se to v celém programu.

Modularita opět další výhodou. Psaní velké části kódu včetně každého a všeho snižuje čitelnost kódu a ztěžuje správu. Kód můžete rozdělit do sekcí pro jednotlivé funkce pomocí funkcí, které jsou jednodušší na pochopení a snadnější správu.



Funkce také poskytuje abstrakci, kde můžeme volat funkci a získat výstup bez znalosti interní implementace.

Pokračujeme s typy funkce C.

Druhy funkcí v C

Existují dva typy funkcí:
Funkce knihovny
Uživatelem definované funkce

Funkce knihovny jsou ty funkce, které jsou již definovány v knihovně C, jako jsou strcat (), printf (), scanf () atd. Chcete-li tyto funkce používat, stačí zahrnout příslušné soubory záhlaví.
Uživatelem definované funkce jsou ty funkce, které jsou definovány uživatelem. Tyto funkce jsou vytvořeny pro opětovné použití kódu a pro úsporu času a prostoru.

Nyní, když známe výhody vytvoření funkce, pojďme pochopit, jak deklarovat funkci v C.

kulaté dvojité na int java

Deklarace a definice funkce

Prohlášení o funkci:

Syntaxe deklarace funkce:

return_type název_funkce (data_type arg1, data_type arg2) int add (int x, int y) // deklarace funkce

V Deklaraci funkce zadáme název funkce, počet vstupních parametrů, jejich datové typy a návratový typ funkce. Deklarace funkce říká kompilátoru o seznamu argumentů, které funkce očekává s jejich datovými typy a návratovým typem funkce.

V deklaraci funkce je zadání názvů parametru volitelné, ale zadání jejich datových typů je povinné.

int add (int, int) // deklarace funkce

Výše uvedená funkce bude mít dva celočíselné parametry.

Definice funkce

 Obrázek - Funkce v C- Edureka
int add (int, int) // deklarace funkce return_type název_funkce (parametry) {tělo funkce}

Jak je znázorněno na obrázku výše, definice funkce se skládá ze dvou částí, tj. Záhlaví funkce a těla funkce

Záhlaví funkce: záhlaví funkce je stejné jako deklarace funkce bez středníku. Záhlaví funkce obsahuje název funkce, parametr a návratový typ.

  • Typ vrácení: Návratový typ je datový typ hodnoty, která bude vrácena funkcí. Funkce může nebo nemusí vrátit hodnotu. Pokud ano, měl by být zadán datový typ hodnoty přeladění, jinak musí být návratový typ neplatný.

  • Název funkce: Toto je název funkce, pomocí které ji můžeme v případě potřeby volat.

  • Parametry: Parametry jsou vstupní hodnoty, které budou předány funkci. Vypráví o datových typech argumentů, jejich pořadí a počtu argumentů, které budou předány funkci. Parametry jsou volitelné. Můžete mít také funkce bez parametrů.

Tělo funkce: Tělo funkce je sada výpisu, který provádí konkrétní úkol. Definuje, co funkce dělá.

Příklad:

int add (int x, int y) {int součet = x + y návrat (součet)}

Doporučujeme deklarovat funkci, než ji definujeme a použijeme. V C můžeme funkci deklarovat a definovat na stejném místě.

Příklad:

#include int add (int, int) // deklarace funkce // definice funkce int add (int x, int y) // záhlaví funkce {// tělo funkce int součet = x + y návrat (součet)} // hlavní funkce int main () {int sum = add (23, 31) printf ('% d', sum) return 0}

Jak vidíme ve výše uvedeném příkladu, že funkci voláme pomocí příkazu int sum = add (23, 31). Vrácená hodnota z funkce je uložena v proměnné součet.

Než půjdeme kupředu, je zde ještě jeden důležitý koncept, kterému je třeba rozumět. Existují dva typy parametrů:

Aktuální parametr : Tyto parametry, které jsou předávány funkcím při jejich volání, jsou známé jako skutečný parametr. Například 23 a 31 ve výše uvedeném příkladu jsou skutečné parametry.

Formální parametr : Ty parametry, které jsou přijímány funkcemi, jsou známé jako formální parametry. Například x & y ve výše uvedeném příkladu jsou formální parametry.

Pojďme rychle pokračovat a pochopit různé způsoby volání funkce v C.

Volání funkce

Funkci můžeme nazvat dvěma způsoby:

  • Volání podle hodnoty
  • Volejte odkazem

Volání podle hodnoty

V metodě volání podle hodnoty je hodnota skutečného parametru předána funkci jako argument. Hodnotu skutečného parametru nelze změnit formálními parametry.

V metodě call be value je jiným formálním a skutečným parametrům přidělena jiná adresa paměti. Jen hodnota skutečného parametru je zkopírována do formálního parametru.

Příklad:

#include void Call_By_Value (int num1) {num1 = 42 printf ('nInside Function, Number is% d', num1)} int main () {int num num = 24 printf ('nBefore Function, Number is% d', num ) Call_By_Value (num) printf ('nAfter Function, Number is% dn', num) return 0}

Výstup

Ve výše uvedeném příkladu je před voláním funkcí podle hodnoty hodnota num 24. Potom, když funkci zavoláme a předáme hodnotu, a změníme ji uvnitř funkce, stane se 42. Když se vrátíme a znovu vytiskneme hodnotu čísla v hlavní funkci se stane 24.

Volejte odkazem

Při volání podle odkazu je adresa paměti skutečného parametru předána funkci jako argument. Zde lze hodnotu skutečného parametru změnit formálním parametrem.

Stejná adresa paměti se používá pro skutečný i formální parametr. Pokud je tedy změněna hodnota formálního parametru, projeví se to i skutečným parametrem.

V C používáme ukazatele k implementaci volání odkazem. Jak vidíte v níže uvedeném příkladu, funkce Call_By_Reference očekává ukazatel na celé číslo.

Nyní tato proměnná num1 uloží adresu paměti skutečného parametru. Takže pro tisk hodnoty, která je uložena v adrese paměti, na kterou ukazuje num1, musíme použít operátor dereference, tj. *. Takže hodnota * num1 je 42.

Operátor adresy & se používá k získání adresy proměnné jakéhokoli datového typu. Takže ve výpisu volání funkce ‚Call_By_Reference (& num) 'je předána adresa num, aby bylo možné num upravit pomocí jeho adresy.

Příklad

#include // definice funkce void Call_By_Reference (int * num1) {* num1 = 42 printf ('nInside Function, Number is% d', * num1)} // Main Function int main () {int num num = 24 printf ( 'nBefore Function, Number is% d', num) Call_By_Reference (& num) printf ('nAfter Function, Number is% dn', num) return 0}

Výstup

V tomto příkladu je hodnota num zpočátku 24, uvnitř hlavní funkce. Jakmile je předán funkci Call_By_Reference a hodnota je změněna formálním parametrem, změnila se také pro skutečný parametr. To je důvod, proč když tiskneme hodnotu num po funkci, je to tisk 42.

co je MVC v Javě

Pokračujeme s typy uživatelem definovaných funkcí v jazyce C.

Typy uživatelem definované Funkce v C.

Existují různé druhy uživatelsky definovaných funkcí založených na typu návratu a předaných argumentech.

Pokračujeme bez předaných argumentů a bez návratové hodnoty

1. Žádné předané argumenty a žádná návratová hodnota

Syntax:

deklarace funkce:

void funkce () volání funkce: funkce () definice funkce: void funkce () {příkazy}

Příklad

periodická tabulka nástrojů devops
#include void add () void add () {int x = 20 int y = 30 int sum = x + y printf ('sum% d', sum)} int main () {add () return 0}

Pokračujeme bez předaných argumentů, ale s návratovou hodnotou

2 Nebyly předány žádné argumenty, ale návratová hodnota

Syntax:

deklarace funkce:

int funkce () volání funkce: funkce () definice funkce: int funkce () {příkazy vrací a}

Příklad:

#include int add () int add () {int x = 20 int y = 30 int sum = x + y return (sum)} int main () {int sum sum = add () printf ('sum% d', součet) návratnost 0}

Pokračování s předanými argumenty, ale bez návratové hodnoty

3 Argument předán, ale žádná návratová hodnota

Syntax:

deklarace funkce:

void funkce (int) volání funkce: funkce (a) definice funkce: void funkce (int) {příkazy}

Příklad:

#include void add (int, int) void add (int x, int y) {int sum = x + y return (sum)} int main () {add (23, 31) return 0}

Pokračování s předáním Argumentu a návratovou hodnotou

4 Předán argument a návratová hodnota

Syntax:

deklarace funkce:

volání funkce int (int): funkce (a) definice funkce: funkce int (int a) {příkazy vrací a}

Příklad

#include int add (int, int) int add (int x, int y) {int sum = x + y return (sum)} int main () {int sum = add (23, 31) printf ('% d' , součet) návratnost 0}

Nyní se rychle podívejme na funkce knihovny C, které jsou důležité pro napsání programu.

C Funkce knihovny

Funkce knihovny jsou funkce v jazyce C, které jsou předdefinovány a jsou ve výchozím nastavení přítomny. Musíte pouze zahrnout konkrétní soubor záhlaví do programu a můžete použít funkce definované v tomto souboru záhlaví. Každý soubor záhlaví poskytuje specifický druh funkcí. Přípona souboru záhlaví je .h.

Například pro použití funkcí printf / scanf musíme do našeho programu zahrnout stdio.h, které poskytují funkce týkající se standardního vstupu / výstupu.

Následuje seznam hlavičkových souborů.

jedenstdio.hStandardní vstupní / výstupní hlavičkový soubor
2ražba.hSoubor záhlaví vstupní / výstupní konzoly
3řetězec.hFunkce knihovny související s řetězci, jako jsou gets (), puts () atd.
4stdlib.hObecné funkce knihovny jako malloc (), calloc (), exit () atd.
5matematikaFunkce související s matematickými operacemi, jako jsou sqrt (), pow () atd.
6čas. hČasové funkce
7ctype.hFunkce zpracování znaků
8stdarg.hFunkce proměnných argumentů
9signál.hFunkce zpracování signálu
10setjmp.hSkokové funkce
jedenáctlocale.hMístní funkce
12errno.hFunkce zpracování chyb
13tvrdit.hDiagnostické funkce

Nyní, když jste prošli výše uvedenými funkcemi C, pochopili byste každou & každou nuanci funkce & jak ji implementovat v jazyce C. Doufám, že tento blog bude informativní a bude pro vás přidanou hodnotou.

Tak jsme dospěli ke konci tohoto článku o „Functions In C“. Pokud se chcete dozvědět více, podívejte se na , důvěryhodná online vzdělávací společnost. Školicí a certifikační kurz Edureka Java J2EE a SOA je navržen tak, aby vás vyškolil jak pro základní, tak pro pokročilé koncepty Java spolu s různými rámci Java, jako je Hibernate & Spring.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů tohoto blogu a my se vám ozveme co nejdříve.