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.
SN | Aspekty funkcie C | Syntax |
---|---|---|
1 | Deklarácia funkcie | return_type názov_funkcie (zoznam argumentov); |
2 | Volanie funkcie | názov_funkcie (zoznam_argumentov) |
3 | Definícia funkcie | ná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í:
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.
SN | Hlavičkový súbor | Popis |
---|---|---|
1 | stdio.h | Toto je štandardný vstupný/výstupný hlavičkový súbor. Obsahuje všetky funkcie knižnice týkajúce sa štandardného vstupu/výstupu. |
2 | konium.h | Toto je vstupný/výstupný hlavičkový súbor konzoly. |
3 | reťazec.h | Obsahuje všetky funkcie knižnice súvisiace s reťazcom, ako sú get(), puts(), atď. |
4 | stdlib.h | Tento hlavičkový súbor obsahuje všetky všeobecné funkcie knižnice ako malloc(), calloc(), exit() atď. |
5 | matematika.h | Tento hlavičkový súbor obsahuje všetky funkcie súvisiace s matematickými operáciami, ako je sqrt(), pow() atď. |
6 | čas.h | Tento hlavičkový súbor obsahuje všetky funkcie súvisiace s časom. |
7 | ctype.h | Tento hlavičkový súbor obsahuje všetky funkcie spracovania znakov. |
8 | stdarg.h | V tomto hlavičkovom súbore sú definované funkcie premenných argumentov. |
9 | signál.h | Všetky funkcie spracovania signálov sú definované v tomto hlavičkovom súbore. |
10 | setjmp.h | Tento súbor obsahuje všetky funkcie skoku. |
jedenásť | locale.h | Tento súbor obsahuje funkcie miestneho nastavenia. |
12 | errno.h | Tento súbor obsahuje funkcie spracovania chýb. |
13 | tvrdiť.h | Tento 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í.