logo

C funkcie

V c môžeme rozdeliť veľký program na základné stavebné bloky známe ako funkcia. Funkcia obsahuje množinu programovacích príkazov uzavretých v {}. Funkciu možno volať viackrát, aby sa zabezpečila opätovná použiteľnosť a modularita programu C. Inými slovami, môžeme povedať, že kolekcia funkcií vytvára program. Funkcia je známa aj ako postup alebo podprogram v iných programovacích jazykoch.

Výhoda funkcií v C

Funkcie C majú nasledujúce výhody.

  • Použitím funkcií sa môžeme vyhnúť opakovanému prepisovaniu rovnakej logiky/kódu v programe.
  • Funkcie C môžeme volať koľkokrát v programe a z akéhokoľvek miesta v programe.
  • Veľký program v jazyku C môžeme ľahko sledovať, keď je rozdelený na viacero funkcií.
  • Opätovná použiteľnosť je hlavným úspechom funkcií C.
  • Volanie funkcie je však v programe C vždy réžia.

Funkčné aspekty

Funkcia C má tri aspekty.

    Deklarácia funkcieFunkcia musí byť deklarovaná globálne v programe c, aby mohla kompilátoru oznámiť názov funkcie, parametre funkcie a typ návratu.
    Volanie funkcieFunkciu je možné volať odkiaľkoľvek v programe. Zoznam parametrov sa nesmie líšiť vo volaní funkcie a deklarácii funkcie. Musíme odovzdať rovnaký počet funkcií, aký je deklarovaný v deklarácii funkcie.Definícia funkcieObsahuje skutočné príkazy, ktoré sa majú vykonať. Je to najdôležitejší aspekt, ku ktorému prichádza kontrola pri volaní funkcie. Tu si musíme všimnúť, že funkcia môže vrátiť iba jednu hodnotu.
SNAspekty funkcie CSyntax
1Deklarácia funkciereturn_type názov_funkcie (zoznam argumentov);
2Volanie funkcienázov_funkcie (zoznam_argumentov)
3Definícia funkcienávratový_typ názov_funkcie (zoznam argumentov) {telo funkcie;}

Syntax vytvárania funkcie v jazyku c je uvedená nižšie:

 return_type function_name(data_type parameter...){ //code to be executed } 

Typy funkcií

V programovaní C existujú dva typy funkcií:

    Funkcie knižnice:sú funkcie, ktoré sú deklarované v hlavičkových súboroch C, ako napríklad scanf(), printf(), gets(), puts(), ceil(), floor() atď.Používateľom definované funkcie:sú funkcie, ktoré vytvára programátor C, aby ich mohol použiť mnohokrát. Znižuje zložitosť veľkého programu a optimalizuje kód.
Funkcia C

Návratová hodnota

Funkcia C môže alebo nemusí vrátiť hodnotu z funkcie. Ak z funkcie nemusíte vracať žiadnu hodnotu, ako návratový typ použite void.

Pozrime sa na jednoduchý príklad funkcie C, ktorá nevracia žiadnu hodnotu z funkcie.

Príklad bez návratovej hodnoty:

 void hello(){ printf('hello c'); } 

Ak chcete vrátiť akúkoľvek hodnotu z funkcie, musíte použiť ľubovoľný dátový typ, ako napríklad int, long, char atď. Návratový typ závisí od hodnoty, ktorú má funkcia vrátiť.

zarovnanie obrázkov v css

Pozrime sa na jednoduchý príklad funkcie C, ktorá vracia int hodnotu z funkcie.

Príklad s návratovou hodnotou:

 int get(){ return 10; } 

Vo vyššie uvedenom príklade musíme vrátiť 10 ako hodnotu, takže návratový typ je int. Ak chcete vrátiť hodnotu s pohyblivou rádovou čiarkou (napr. 10,2, 3,1, 54,5 atď.), musíte ako návratový typ metódy použiť float.

 float get(){ return 10.2; } 

Teraz musíte zavolať funkciu, aby ste získali hodnotu funkcie.

Rôzne aspekty volania funkcií

Funkcia môže alebo nemusí akceptovať akýkoľvek argument. Môže alebo nemusí vrátiť žiadnu hodnotu. Na základe týchto skutočností existujú štyri rôzne aspekty volaní funkcií.

  • funkciu bez argumentov a bez návratovej hodnoty
  • funkciu bez argumentov a s návratovou hodnotou
  • funkcia s argumentmi a bez návratovej hodnoty
  • funkcia s argumentmi a návratovou hodnotou

Príklad funkcie bez argumentu a návratovej hodnoty

Príklad 1

 #include void printName(); void main () { printf('Hello '); printName(); } void printName() { printf('Javatpoint'); } 

Výkon

 Hello Javatpoint 

Príklad 2

 #include void sum(); void main() { printf('
Going to calculate the sum of two numbers:'); sum(); } void sum() { int a,b; printf('
Enter two numbers'); scanf('%d %d',&a,&b); printf('The sum is %d',a+b); } 

Výkon

 Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34 

Príklad funkcie bez argumentu a s návratovou hodnotou

Príklad 1

 #include int sum(); void main() { int result; printf('
Going to calculate the sum of two numbers:'); result = sum(); printf('%d',result); } int sum() { int a,b; printf('
Enter two numbers'); scanf('%d %d',&a,&b); return a+b; } 

Výkon

java localdatetime
 Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34 

Príklad 2: program na výpočet plochy štvorca

chrome adresný riadok
 #include int sum(); void main() { printf('Going to calculate the area of the square
'); float area = square(); printf('The area of the square: %f
',area); } int square() { float side; printf('Enter the length of the side in meters: '); scanf('%f',&side); return side * side; } 

Výkon

 Going to calculate the area of the square Enter the length of the side in meters: 10 The area of the square: 100.000000 

Príklad funkcie s argumentom a bez návratovej hodnoty

Príklad 1

 #include void sum(int, int); void main() { int a,b,result; printf('
Going to calculate the sum of two numbers:'); printf('
Enter two numbers:'); scanf('%d %d',&a,&b); sum(a,b); } void sum(int a, int b) { printf('
The sum is %d',a+b); } 

Výkon

 Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34 

Príklad 2: program na výpočet priemeru piatich čísel.

 #include void average(int, int, int, int, int); void main() { int a,b,c,d,e; printf('
Going to calculate the average of five numbers:'); printf('
Enter five numbers:'); scanf('%d %d %d %d %d',&a,&b,&c,&d,&e); average(a,b,c,d,e); } void average(int a, int b, int c, int d, int e) { float avg; avg = (a+b+c+d+e)/5; printf('The average of given five numbers : %f',avg); } 

Výkon

 Going to calculate the average of five numbers: Enter five numbers:10 20 30 40 50 The average of given five numbers : 30.000000 

Príklad funkcie s argumentom a návratovou hodnotou

Príklad 1

 #include int sum(int, int); void main() { int a,b,result; printf('
Going to calculate the sum of two numbers:'); printf('
Enter two numbers:'); scanf('%d %d',&a,&b); result = sum(a,b); printf('
The sum is : %d',result); } int sum(int a, int b) { return a+b; } 

Výkon

 Going to calculate the sum of two numbers: Enter two numbers:10 20 The sum is : 30 

Príklad 2: Program na kontrolu, či je číslo párne alebo nepárne

 #include int even_odd(int); void main() { int n,flag=0; printf('
Going to check whether a number is even or odd'); printf('
Enter the number: '); scanf('%d',&n); flag = even_odd(n); if(flag == 0) { printf('
The number is odd'); } else { printf('
The number is even'); } } int even_odd(int n) { if(n%2 == 0) { return 1; } else { return 0; } } 

Výkon

 Going to check whether a number is even or odd Enter the number: 100 The number is even 

Funkcie knižnice C

Funkcie knižnice sú funkcie zabudované v jazyku C, ktoré sú zoskupené a umiestnené na spoločnom mieste nazývanom knižnica. Takéto funkcie sa používajú na vykonávanie niektorých špecifických operácií. Napríklad printf je funkcia knižnice používaná na tlač na konzole. Knižničné funkcie vytvárajú dizajnéri kompilátorov. Všetky funkcie štandardnej knižnice C sú definované v rôznych hlavičkových súboroch uložených s príponou .h . Tieto hlavičkové súbory musíme zahrnúť do nášho programu, aby sme mohli využívať funkcie knižnice definované v takýchto hlavičkových súboroch. Napríklad, ak chcete použiť funkcie knižnice, ako je printf/scanf, musíme do nášho programu zahrnúť stdio.h, čo je hlavičkový súbor, ktorý obsahuje všetky funkcie knižnice týkajúce sa štandardného vstupu/výstupu.

Zoznam najčastejšie používaných hlavičkových súborov je uvedený v nasledujúcej tabuľke.

SNHlavičkový súborPopis
1stdio.hToto je štandardný vstupný/výstupný hlavičkový súbor. Obsahuje všetky funkcie knižnice týkajúce sa štandardného vstupu/výstupu.
2konium.hToto je vstupný/výstupný hlavičkový súbor konzoly.
3reťazec.hObsahuje všetky funkcie knižnice súvisiace s reťazcom, ako sú get(), puts(), atď.
4stdlib.hTento hlavičkový súbor obsahuje všetky všeobecné funkcie knižnice ako malloc(), calloc(), exit() atď.
5matematika.hTento hlavičkový súbor obsahuje všetky funkcie súvisiace s matematickými operáciami, ako je sqrt(), pow() atď.
6čas.hTento hlavičkový súbor obsahuje všetky funkcie súvisiace s časom.
7ctype.hTento hlavičkový súbor obsahuje všetky funkcie spracovania znakov.
8stdarg.hV tomto hlavičkovom súbore sú definované funkcie premenných argumentov.
9signál.hVšetky funkcie spracovania signálov sú definované v tomto hlavičkovom súbore.
10setjmp.hTento súbor obsahuje všetky funkcie skoku.
jedenásťlocale.hTento súbor obsahuje funkcie miestneho nastavenia.
12errno.hTento súbor obsahuje funkcie spracovania chýb.
13tvrdiť.hTento súbor obsahuje diagnostické funkcie.

Ďalšie podrobnosti týkajúce sa funkcií C sú uvedené nižšie:

Existuje niekoľko ďalších informácií týkajúcich sa funkcií C. Niektoré z nich sú nasledovné:

Modulárne programovanie: Schopnosť rozdeliť a obrovský program do menších, lepšie spravovateľných modulov je jednou z hlavných výhod využívania funkcií v C. Každá funkcia môže obsahovať konkrétnu úlohu alebo komponent funkcionality, čo zjednodušuje a vyjasňuje celkovú štruktúru programu. Táto modulárna stratégia zlepšuje opätovné použitie kódu a uľahčuje údržbu a ladenie.

logika prvého poriadku

Opätovné použitie kódu: Pomocou funkcií môžete vytvoriť určitý algoritmus alebo časť logiky iba raz a použiť ich opakovane vo svojom programe. Funkciu môžete zavolať kedykoľvek, keď potrebujete spustiť kód, čo vám ušetrí potrebu duplikovať ho inde. Nielen to urýchľuje vývoj ale tiež zabezpečuje konzistentnosť a znižuje možnosť robenia chýb.

Zapuzdrenie a abstrakcia: Zatemňovaním špecifík implementácie funkcionality ponúkajú funkcie úroveň abstrakcie. Rozhranie prototypu funkcie môže byť definované v a hlavičkový súbor , pričom skutočná implementácia môže byť poskytnutá v inom zdrojovom súbore. Ostatné časti programu môžu využívať funkciu bez toho, aby museli pochopiť, ako je interne implementovaná, pretože je oddelené rozhranie a implementácia.

Jednoduchá údržba programu: Program možno ľahšie pochopiť a udržiavať, ak je rozdelený na menšie funkcie. Schopnosť priradiť konkrétnu zodpovednosť každej funkcii robí kód čitateľnejším a uľahčuje odstraňovanie problémov a ladenie. Ak sa nájde chyba alebo je potrebná úprava, môžete sa sústrediť na potrebnú funkciu bez ovplyvnenia iných častí programu.

Vylepšená spolupráca: Funkcie umožňujú vývojárom pracujúcim na rovnakom projekte spolupracovať. Program je možné rozdeliť na funkcie, aby na ňom mohlo pracovať viacero členov tímu rôzne funkcie naraz. Vývojári môžu hladko integrovať svoju prácu do funkcií, ak sú rozhrania dobre špecifikované, čo zvyšuje produktivitu a podporuje efektívny vývoj.

Odovzdanie parametra: Funkcii v C môžete posielať argumenty alebo údaje, aby ich mohla spracovať. Pomocou týchto vstupov môže funkcia vykonávať akcie a generovať výsledky. Flexibilitu a prispôsobivosť funkcií môžete zvýšiť odovzdávaním parametrov, čo zvýši celkovú všestrannosť vášho programu.

Návratové hodnoty: Funkcie môžu posielať hodnoty späť do kódu, ktorý ich volal, čo umožňuje komunikáciu výsledkov vykonania funkcie. Vrátenú hodnotu môžete použiť v iných oblastiach programu po vykonaní výpočtov alebo manipulácie s údajmi v rámci funkcie. Návratové hodnoty sú obzvlášť užitočné, keď potrebujete vypočítať výsledok alebo vytvoriť podmienku v závislosti od výstupu funkcie.

Záver:

Na záver, funkcie sú nevyhnutné pre programovanie v C, pretože poskytujú program organizácia, znovupoužiteľnosť a modularita . Vývojári sa môžu vyhnúť opakovanému vytváraniu rovnakého kódu rozdelením veľkých programov na menšie funkcie, vďaka čomu je kód efektívnejší a jednoduchší na údržbu. Kdekoľvek v programe môže volať funkciu, poskytuje flexibilitu a zlepšuje tok riadenia.

The vyhlásenie, hovor , a definícia funkcií sú len niektoré z ich mnohých charakteristík. Kompilátor je informovaný deklaráciou funkcie meno, argumenty , a návratový typ . Je možné volať funkciu s alebo bez parametre a s alebo bez a návratová hodnota . Programátori vytvárajú užívateľom definované funkcie na zlepšenie čitateľnosti a optimalizácie ich kódu, zatiaľ čo funkcie knižnice C sú podobné printf() a scanf() poskytujú prednastavené možnosti.

Celkovo sú funkcie kľúčovými stavebnými kameňmi v programovaní v jazyku C a poskytujú výhody vrátane zvýšenej organizácie, opätovného použitia kódu a jednoduchého sledovania veľkých programov. Volania funkcií môžu zvýšiť réžiu, ale ich výhody prevažujú nad minimálnym zásahom do výkonu. Programátori môžu písať efektívne a modulárne C programy pochopením a používaním funkcií.