Všetko, čo potrebujete vedieť o funkciách v jazyku C?



Tento článok vám predstaví jednoduchý, ale veľmi zásadný a dôležitý koncept, ktorý je Funkcie v jazyku C, a nadviaže na neho ukážkou.

Tento článok vám predstaví jednoduchý, ale veľmi zásadný a dôležitý koncept, ktorý je funkciou v C, a nadviazať na ňu ukážkou. V tomto článku sa budeme zaoberať nasledujúcimi ukazovateľmi,

Funkcie sú stavebnými blokmi ľubovoľného programovacieho jazyka. Jednoducho povedané, fungovať v množine príkazov, ktoré prijímajú vstupy, vykonávajú konkrétnu úlohu a potom vracajú výstup.
Ideológiou vytvárania funkcie je spojiť množinu súvisiacich výrokov, ktoré vykonávajú konkrétnu úlohu. Aby ste nemuseli písať ten istý kód niekoľkokrát pre rôzne vstupy, nemusíte písať viackrát. Musíte len zavolať funkciu pre rôzne vstupy, vykoná zadanú úlohu pre daný vstup a vráti výstup. Túto funkciu môžete volať koľkokrát chcete. V tomto blogu sa dozvieme všetky nuansy týkajúce sa funkcií v programovacom jazyku C.





Začnime tou najzásadnejšou otázkou.

Čo sú funkcie v jazyku C?

Funkcie sú v jazyku C rovnaké ako v ktoromkoľvek inom programovacom jazyku. Je to sada kódov, ktoré sa navzájom spájajú na vykonanie konkrétnej úlohy. Sada kódu, ktorá sa má vykonať, je uvedená v zložených zložených zátvorkách, t. J. „{}“.



Predtým, ako sa naučíme písať funkciu v jazyku C, najskôr pochopíme, aké sú výhody.

Výhody funkcií v C

Výhody funkcií sú spoločné pre všetky programovacie jazyky.
Hlavnou myšlienkou funkcie je znížiť nadbytočnosť v kóde. Predpokladajme, že máte funkcionalitu, ktorú je potrebné v programe vykonať viackrát, takže namiesto opakovaného písania môžete pre túto úlohu vytvoriť funkciu a volať ju koľkokrát chcete. Ďalšou skrytou výhodou je, že ak sa logika vašich funkcií zmení neskôr, nemusíte to meniť a meniť ich na viacerých miestach. Musíte len zmeniť kód na jednom mieste (t. J. Vo funkcii) a prejavil by sa to v celom programe.

Modularita je opäť ďalšou výhodou. Napísanie veľkej časti kódu vrátane každého a všetkého, znižuje čitateľnosť kódu a sťažuje správu. Kód môžete rozdeliť do sekcií pre jednotlivé funkcionality pomocou funkcií, ktoré sú ľahšie pochopiteľné a ľahšie sa spravujú.



Funkcia tiež poskytuje abstrakciu, kde môžeme zavolať funkciu a získať výstup bez znalosti internej implementácie.

Ďalej s typmi funkcie C.

Druhy funkcií v C

Existujú dva typy funkcií:
Knižničné funkcie
Užívateľom definované funkcie

Funkcie knižnice sú tie funkcie, ktoré sú už definované v knižnici C, napríklad strcat (), printf (), scanf () atď. Na použitie týchto funkcií je potrebné zahrnúť iba príslušné hlavičkové súbory.
Užívateľom definované funkcie sú tie funkcie, ktoré sú definované používateľom. Tieto funkcie slúžia na opätovné použitie kódu a na úsporu času a priestoru.

Teraz, keď poznáme výhody vytvorenia funkcie, pochopme, ako deklarovať funkciu v jazyku C.

zaokrúhlené dvojité na int java

Vyhlásenie a definícia funkcie

Vyhlásenie o funkcii:

Syntax deklarácie funkcie:

return_type function_name (data_type arg1, data_type arg2) int add (int x, int y) // vyhlásenie funkcie

V Deklarácii funkcie špecifikujeme názov funkcie, počet vstupných parametrov, ich datové typy a návratový typ funkcie. Deklarácia funkcie informuje kompilátor o zozname argumentov, ktoré funkcia očakáva, s ich dátovými typmi a návratovým typom funkcie.

V deklarácii funkcie je zadanie názvov parametra voliteľné, ale uvedenie ich dátových typov je povinné.

int add (int, int) // deklarácia funkcie

Vyššie uvedená funkcia bude mať dva celočíselné parametre.

Definícia funkcie

 Obrázok - Funkcie v jazyku C - Edureka
int add (int, int) // deklarácia funkcie return_type názov_funkcie (parametre) {telo funkcie}

Ako je znázornené na obrázku vyššie, definícia funkcie sa skladá z dvoch častí, tj. Hlavička funkcie a telo funkcie

Hlavička funkcie: hlavička funkcie je rovnaká ako deklarácia funkcie bez bodkočiarky. Hlavička funkcie obsahuje názov funkcie, parameter a návratový typ.

  • Typ vrátenia: Návratový typ je údajový typ hodnoty, ktorá bude vrátená funkciou. Funkcia môže, ale nemusí vrátiť hodnotu. Ak to urobí, mal by sa zadať dátový typ hodnoty preladenia, inak musí byť návratový typ neplatný.

  • Názov funkcie: Toto je názov funkcie, pomocou ktorej ju môžeme nazvať, keď je to potrebné.

  • Parametre: Parametre sú vstupné hodnoty, ktoré sa odovzdajú funkcii. Hovorí o dátových typoch argumentov, ich poradí a počte argumentov, ktoré budú funkcii odovzdané. Parametre sú voliteľné. Môžete mať aj funkcie bez parametrov.

Funkčný orgán: Telo funkcie je množina príkazov, ktorá vykonáva konkrétnu úlohu. Definuje, čo funkcia robí.

Príklad:

int add (int x, int y) {int sum = x + y return (sum)}

Pred definovaním a použitím funkcie sa odporúča deklarovať funkciu. V jazyku C môžeme deklarovať a definovať funkciu na rovnakom mieste.

Príklad:

#include int add (int, int) // deklarácia funkcie // definícia funkcie int add (int x, int y) // hlavička funkcie {// telo funkcie int sum = x + y return (sum)} // hlavna funkcia int main () {int sum = add (23, 31) printf ('% d', sum) return 0}

Ako vidíme vo vyššie uvedenom príklade, že funkciu voláme pomocou príkazu int sum = add (23, 31). Vrátená hodnota z funkcie je uložená v premennej súčet.

Než pôjdeme ďalej, je tu ešte jeden dôležitý koncept, ktorý treba pochopiť o paramente. Existujú dva typy parametrov:

Aktuálny parameter : Parametre, ktoré sú prenášané do funkcií, zatiaľ čo ich voláme, sú známe ako skutočný parameter. Napríklad 23 a 31 vo vyššie uvedenom príklade sú skutočné parametre.

Formálny parameter : Parametre, ktoré sú prijímané funkciami, sú známe ako formálne parametre. Napríklad x & y vo vyššie uvedenom príklade sú formálne parametre.

Poďme rýchlo ďalej a pochopme rôzne spôsoby volania funkcie v C.

Volanie funkcie

Existujú dva spôsoby, ako môžeme nazvať funkciu:

  • Volať podľa hodnoty
  • Volať referenciou

Volať podľa hodnoty

Pri metóde volania pomocou hodnoty sa hodnota skutočného parametra odovzdá funkcii ako argument. Hodnotu skutočného parametra nemožno zmeniť pomocou formálnych parametrov.

Pri metóde call be value je iným formálnym a skutočným parametrom pridelená iná adresa pamäte. Iba hodnota aktuálneho parametra sa skopíruje do formálneho parametra.

Prí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ýkon

Vo vyššie uvedenom príklade je pred volaním hodnotovou funkciou hodnota num 24. Potom, keď zavoláme funkciu a odovzdáme hodnotu, & zmeníme ju vo vnútri funkcie, stane sa 42. Keď sa vrátime a znova vytlačíme hodnotu z čísla v hlavnej funkcii sa stane 24.

Volať referenciou

Pri volaní pomocou odkazu sa adresa pamäte skutočného parametra odovzdá funkcii ako argument. Tu je možné hodnotu skutočného parametra zmeniť formálnym parametrom.

Rovnaká adresa pamäte sa používa pre skutočný aj formálny parameter. Ak sa teda zmení hodnota formálneho parametra, prejaví sa to aj skutočným parametrom.

V jazyku C používame ukazovatele na implementáciu volania odkazom. Ako môžete vidieť v nasledujúcom príklade, funkcia Call_By_Reference očakáva smerník na celé číslo.

Teraz bude táto premenná num1 ukladať adresu pamäte skutočného parametra. Takže na vytlačenie hodnoty, ktorá je uložená v adrese pamäte, na ktorú ukazuje num1, musíme použiť operátor dereference, tj. *. Takže hodnota * num1 je 42.

Operátor adresy & sa používa na získanie adresy premennej ľubovoľného dátového typu. Takže vo výpise volania funkcie „Call_By_Reference (& num)“ sa odovzdá adresa num, aby bolo možné hodnotu num upraviť pomocou jej adresy.

Príklad

#include // function definition 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ýkon

V tomto príklade je hodnota num spočiatku 24, vo vnútri hlavnej funkcie. Akonáhle je odovzdaný funkcii Call_By_Reference a hodnota je zmenená formálnym parametrom, zmenila sa aj pre skutočný parameter. To je dôvod, prečo keď tlačíme hodnotu num po funkcii, je to tlač 42.

Fibonacciho séria c ++

Ďalej s typmi používateľom definovaných funkcií v jazyku C.

Typy definované používateľom Funkcia v C.

Existuje množstvo druhov užívateľom definovaných funkcií na základe typu návratov a odovzdaných argumentov.

Pokračujeme bez odovzdaných argumentov a bez návratovej hodnoty

1. Neprešli žiadne argumenty a žiadna návratová hodnota

Syntax:

deklarácia funkcie:

void function () volanie funkcie: function () definícia funkcie: void function () {statement}

Príklad

periodická tabuľka nástrojov 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 odovzdaných argumentov, ale s návratovou hodnotou

2 Neprešli žiadne argumenty, ale návratová hodnota

Syntax:

deklarácia funkcie:

int function () volanie funkcie: function () definícia funkcie: int function () {príkazy return a}

Prí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', súčet) návratnosť 0}

Pokračovanie s dosiahnutými argumentmi, ale bez návratovej hodnoty

3 Argument prešiel, ale žiadna návratová hodnota

Syntax:

deklarácia funkcie:

void funkcia (int) volanie funkcie: funkcia (a) definícia funkcie: void funkcia (int) {vyhlásenia}

Prí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čujeme s odovzdaným argumentom a návratovou hodnotou

4 Prešiel argument a návratová hodnota

Syntax:

deklarácia funkcie:

int funkcia (int) volanie funkcie: funkcia (a) definícia funkcie: int funkcia (int a) {príkazy vrátia a}

Prí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' , suma) návratnosť 0}

Poďme sa teraz rýchlo pozrieť na funkcie knižnice C, ktoré sú dôležité pri písaní programu.

C Funkcie knižnice

Funkcie knižnice sú funkcie v jazyku C, ktoré sú preddefinované a sú predvolene prítomné. Musíte len zahrnúť konkrétny hlavičkový súbor do programu a môžete používať funkcie definované v tomto hlavičkovom súbore. Každý hlavičkový súbor poskytuje špecifický druh funkčnosti. Prípona hlavičkového súboru je .h.

Napríklad na použitie funkcií printf / scanf musíme do nášho programu zahrnúť stdio.h, ktoré poskytujú funkcie týkajúce sa štandardného vstupu / výstupu.

Nasleduje zoznam hlavičkových súborov.

jedenstdio.hŠtandardný hlavičkový súbor vstupu / výstupu
2razba.hSúbor hlavičky vstupu / výstupu konzoly
3reťazec.hFunkcie knižnice súvisiace s reťazcami, ako napríklad gets (), puts () atď.
4stdlib.hVšeobecné funkcie knižnice ako malloc (), calloc (), exit () atď.
5matematika.hFunkcie spojené s matematickými operáciami, ako sú sqrt (), pow () atď.
6čas.hFunkcie súvisiace s časom
7ctype.hFunkcie spracovania znakov
8stdarg.hFunkcie premenných argumentov
9signál.hFunkcie spracovania signálu
10setjmp.hFunkcie skoku
jedenásťmiestne nastavenie.hMiestne funkcie
12errno.hFunkcie spracovania chýb
13tvrdiť.hDiagnostické funkcie

Teraz, keď ste prešli vyššie uvedenými funkciami C, pochopili by ste všetky a všetky nuansy funkcií a ako ich implementovať v jazyku C. Dúfam, že tento blog bude informatívny a bude pre vás pridanou hodnotou.

Týmto sme sa dostali na koniec tohto článku o funkcii v C. Ak sa chcete dozvedieť viac, pozrite si , dôveryhodná online vzdelávacia spoločnosť. Výcvikový a certifikačný kurz Edureka Java J2EE a SOA je navrhnutý tak, aby vás vyškolil na základné aj pokročilé koncepty Java spolu s rôznymi rámcami Java, ako je Hibernate & Spring.

Máte na nás otázku? Uveďte to prosím v sekcii komentárov tohto blogu a my sa vám ozveme čo najskôr.