V c lahko velik program razdelimo na osnovne gradnike, znane kot funkcija. Funkcija vsebuje nabor programskih stavkov, obdanih z {}. Funkcijo lahko pokličete večkrat, da zagotovite ponovno uporabnost in modularnost programa C. Z drugimi besedami, lahko rečemo, da zbirka funkcij ustvari program. Funkcija je znana tudi kot postopek oz podprogram v drugih programskih jezikih.
Prednosti funkcij v C
Funkcije C imajo naslednje prednosti.
- Z uporabo funkcij se lahko izognemo ponovnemu pisanju iste logike/kode v programu.
- Funkcije C lahko kličemo poljubno število krat v programu in s katerega koli mesta v programu.
- Velik program C lahko zlahka sledimo, če je razdeljen na več funkcij.
- Ponovna uporabnost je glavni dosežek funkcij C.
- Vendar je klicanje funkcij v programu C vedno dodaten strošek.
Funkcijski vidiki
Obstajajo trije vidiki funkcije C.
SN | C funkcijski vidiki | Sintaksa |
---|---|---|
1 | Deklaracija funkcije | return_type ime_funkcije (seznam argumentov); |
2 | Klic funkcije | ime_funkcije (seznam_argumentov) |
3 | Definicija funkcije | return_type ime_funkcije (seznam argumentov) {telo funkcije;} |
Sintaksa ustvarjanja funkcije v jeziku c je podana spodaj:
return_type function_name(data_type parameter...){ //code to be executed }
Vrste funkcij
V programiranju C obstajata dve vrsti funkcij:
Povratna vrednost
Funkcija C lahko vrne vrednost iz funkcije ali pa tudi ne. Če vam iz funkcije ni treba vrniti nobene vrednosti, uporabite void za vrsto vrnitve.
Oglejmo si preprost primer funkcije C, ki ne vrne nobene vrednosti iz funkcije.
Primer brez povratne vrednosti:
void hello(){ printf('hello c'); }
Če želite iz funkcije vrniti katero koli vrednost, morate uporabiti kateri koli tip podatkov, kot je int, long, char itd. Vrsta vrnitve je odvisna od vrednosti, ki jo vrne funkcija.
usedelimiter java
Oglejmo si preprost primer funkcije C, ki vrne vrednost int iz funkcije.
Primer s povratno vrednostjo:
int get(){ return 10; }
V zgornjem primeru moramo kot vrednost vrniti 10, tako da je vrsta vrnitve int. Če želite vrniti vrednost s plavajočo vejico (npr. 10,2, 3,1, 54,5 itd.), morate kot povratni tip metode uporabiti float.
float get(){ return 10.2; }
Zdaj morate poklicati funkcijo, da dobite vrednost funkcije.
Različni vidiki klicanja funkcij
Funkcija lahko sprejme ali ne sprejme nobenega argumenta. Lahko ali pa ne vrne nobene vrednosti. Na podlagi teh dejstev obstajajo štirje različni vidiki klicev funkcij.
ukaz dotik v linuxu
- funkcija brez argumentov in brez vrnjene vrednosti
- funkcija brez argumentov in s povratno vrednostjo
- funkcija z argumenti in brez vrnjene vrednosti
- funkcijo z argumenti in s povratno vrednostjo
Primer za funkcijo brez argumenta in vrnjene vrednosti
Primer 1
#include void printName(); void main () { printf('Hello '); printName(); } void printName() { printf('Javatpoint'); }
Izhod
Hello Javatpoint
Primer 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); }
Izhod
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Primer za funkcijo brez argumenta in s povratno vrednostjo
Primer 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; }
Izhod
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Primer 2: program za izračun ploščine kvadrata
kako pretvoriti niz v celo število v Javi
#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; }
Izhod
Going to calculate the area of the square Enter the length of the side in meters: 10 The area of the square: 100.000000
Primer za funkcijo z argumentom in brez vrnjene vrednosti
Primer 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); }
Izhod
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Primer 2: program za izračun povprečja petih števil.
#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); }
Izhod
Going to calculate the average of five numbers: Enter five numbers:10 20 30 40 50 The average of given five numbers : 30.000000
Primer za funkcijo z argumentom in s povratno vrednostjo
Primer 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; }
Izhod
Going to calculate the sum of two numbers: Enter two numbers:10 20 The sum is : 30
Primer 2: Program za preverjanje, ali je število sodo ali liho
#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; } }
Izhod
Going to check whether a number is even or odd Enter the number: 100 The number is even
Funkcije knjižnice C
Knjižnične funkcije so vgrajene funkcije v C, ki so združene in postavljene na skupno mesto, imenovano knjižnica. Takšne funkcije se uporabljajo za izvajanje nekaterih posebnih operacij. Na primer, printf je funkcija knjižnice, ki se uporablja za tiskanje na konzoli. Funkcije knjižnice ustvarijo oblikovalci prevajalnikov. Vse funkcije standardne knjižnice C so definirane znotraj različnih datotek glave, shranjenih s pripono .h . Te datoteke glave moramo vključiti v naš program, da lahko uporabimo funkcije knjižnice, definirane v takih datotekah glave. Na primer, za uporabo funkcij knjižnice, kot je printf/scanf, moramo v naš program vključiti stdio.h, ki je datoteka glave, ki vsebuje vse funkcije knjižnice v zvezi s standardnim vhodom/izhodom.
Seznam najpogosteje uporabljenih datotek glave je podan v naslednji tabeli.
SN | Datoteka glave | Opis |
---|---|---|
1 | stdio.h | To je standardna vhodno/izhodna datoteka glave. Vsebuje vse funkcije knjižnice v zvezi s standardnim vhodom/izhodom. |
2 | konij.h | To je vhodno/izhodna glava datoteke konzole. |
3 | niz.h | Vsebuje vse knjižnične funkcije, povezane z nizi, kot so gets(), puts() itd. |
4 | stdlib.h | Ta datoteka glave vsebuje vse splošne funkcije knjižnice, kot so malloc(), calloc(), exit() itd. |
5 | math.h | Ta datoteka glave vsebuje vse funkcije, povezane z matematičnimi operacijami, kot so sqrt(), pow() itd. |
6 | čas.h | Ta datoteka glave vsebuje vse funkcije, povezane s časom. |
7 | ctype.h | Ta datoteka glave vsebuje vse funkcije za obdelavo znakov. |
8 | stdarg.h | Funkcije spremenljivega argumenta so definirane v tej datoteki glave. |
9 | signal.h | Vse funkcije za obdelavo signalov so definirane v tej datoteki glave. |
10 | setjmp.h | Ta datoteka vsebuje vse funkcije skoka. |
enajst | locale.h | Ta datoteka vsebuje področne funkcije. |
12 | napaka.h | Ta datoteka vsebuje funkcije za obravnavanje napak. |
13 | trditi.h | Ta datoteka vsebuje diagnostične funkcije. |
Dodatne podrobnosti o funkcijah C so navedene spodaj:
Obstaja več dodatnih informacij, povezanih s funkcijami C. Nekateri od njih so naslednji:
Modularno programiranje: Sposobnost za razdeliti a ogromen program v manjše, bolj obvladljive module, je ena od glavnih prednosti uporabe funkcij v C. Vsaka funkcija lahko vsebuje določeno opravilo ali komponento funkcionalnosti, ki poenostavi in pojasni celotno strukturo programa. Ta modularna strategija izboljša ponovno uporabo kode in olajša vzdrževanje in odpravljanje napak.
obj v Javi
Ponovna uporaba kode: Z uporabo funkcij lahko ustvarite določen algoritem ali del logike samo enkrat in ga večkrat uporabite v svojem programu. Funkcijo lahko pokličete kadar koli, ko morate zagnati kodo, in vam tako prihrani, da je ne bi morali podvajati drugje. Ne samo pospešuje razvoj ampak tudi zagotavlja doslednost in zmanjšuje možnost napak.
Enkapsulacija in abstrakcija: Z zakrivanjem posebnosti implementacije funkcionalnosti ponujajo funkcije raven abstrakcije. Vmesnik prototipa funkcije je mogoče definirati v a naslovna datoteka , medtem ko je dejansko izvedbo mogoče zagotoviti v drugi izvorni datoteki. Drugi deli programa lahko uporabljajo funkcijo, ne da bi morali razumeti, kako je interno implementirana zaradi ločitve vmesnika in implementacije.
Enostavno vzdrževanje programa: Program lahko lažje razumemo in vzdržujemo, če ga razdelimo na manjše funkcije. Možnost dodelitve posebne odgovornosti vsaki funkciji naredi kodo bolj berljivo in poenostavi odpravljanje težav in razhroščevanje. Če se odkrije napaka ali je potrebna sprememba, se lahko osredotočite na potrebno funkcijo, ne da bi vplivali na druge dele programa.
Izboljšano sodelovanje: Funkcije omogočajo razvijalcem, ki delajo na istem projektu, da sodelujejo. Program je lahko razdeljen na funkcije, tako da lahko dela več članov skupine različne funkcije naenkrat. Razvijalci lahko gladko vključijo svoje delo v funkcije, če so vmesniki dobro določeni, kar izboljša produktivnost in spodbuja učinkovit razvoj.
Posredovanje parametra: Argumente ali podatke lahko pošljete funkciji v C, da jih lahko obdela. Funkcija lahko izvaja dejanja in ustvarja rezultate z uporabo teh vnosov. Fleksibilnost in prilagodljivost funkcij lahko povečate s posredovanjem parametrov, kar bo povečalo splošno vsestranskost vašega programa.
Vrnjene vrednosti: Funkcije lahko pošljejo vrednosti nazaj kodi, ki jih je poklicala, kar omogoča sporočanje rezultatov izvajanja funkcije. Vrnjeno vrednost lahko uporabite v drugih delih programa po izračunih ali obdelavi podatkov znotraj funkcije. Povratne vrednosti so še posebej koristni, ko morate izračunati rezultat ali določiti pogoj glede na izhod funkcije.
Zaključek:
Skratka, funkcije so bistvene za programiranje C, ker dajejo program organizacija, ponovna uporabnost in modularnost . Razvijalci se lahko izognejo večkratnemu ustvarjanju iste kode tako, da ogromne programe razdelijo na manjše funkcije, s čimer postane koda učinkovitejša in enostavnejša za vzdrževanje. Kjer koli v programu lahko pokličete funkcijo, kar zagotavlja prilagodljivost in izboljša pretok nadzora.
The izjava, klic , in definicija funkcij je le nekaj izmed njihovih številnih značilnosti. Prevajalnik je obveščen z deklaracijo funkcije ime, argumenti , in povratni tip . Funkcijo lahko pokličete z ali brez parametri in z ali brez a povratna vrednost . Programerji sestavljajo uporabniško definirane funkcije za izboljšanje berljivosti in optimizacije svoje kode, medtem ko knjižnica C deluje kot printf() in scanf() zagotoviti prednastavljene zmogljivosti.
Na splošno so funkcije ključni gradniki v programiranju C, saj zagotavljajo prednosti, vključno z večjo organizacijo, ponovno uporabo kode in preprostim sledenjem ogromnim programom. Funkcijski klici bi lahko dodali nekaj dodatnih stroškov, vendar njihove prednosti prevladajo nad minimalnim udarcem v zmogljivosti. Programerji lahko pišejo učinkovite in modularne programe C z razumevanjem in uporabo funkcij.