logo

C funkcije

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.

    Deklaracija funkcijeFunkcijo je treba deklarirati globalno v programu c, da prevajalnik obvesti o imenu funkcije, parametrih funkcije in vrsti vrnitve.
    Klic funkcijeFunkcijo je mogoče priklicati od koder koli v programu. Seznam parametrov se ne sme razlikovati pri klicanju funkcije in deklaraciji funkcije. Posredovati moramo enako število funkcij, kot je deklarirano v deklaraciji funkcije.Definicija funkcijeVsebuje dejanske stavke, ki jih je treba izvesti. To je najpomembnejši vidik, do katerega pride nadzor, ko je funkcija priklicana. Pri tem moramo opozoriti, da lahko funkcija vrne samo eno vrednost.
SNC funkcijski vidikiSintaksa
1Deklaracija funkcijereturn_type ime_funkcije (seznam argumentov);
2Klic funkcijeime_funkcije (seznam_argumentov)
3Definicija funkcijereturn_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:

    Funkcije knjižnice:so funkcije, ki so deklarirane v datotekah glave C, kot so scanf(), printf(), gets(), puts(), ceil(), floor() itd.Uporabniško določene funkcije:so funkcije, ki jih ustvari programer C, tako da jih lahko večkrat uporabi. Zmanjša kompleksnost velikega programa in optimizira kodo.
C funkcija

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.

SNDatoteka glaveOpis
1stdio.hTo je standardna vhodno/izhodna datoteka glave. Vsebuje vse funkcije knjižnice v zvezi s standardnim vhodom/izhodom.
2konij.hTo je vhodno/izhodna glava datoteke konzole.
3niz.hVsebuje vse knjižnične funkcije, povezane z nizi, kot so gets(), puts() itd.
4stdlib.hTa datoteka glave vsebuje vse splošne funkcije knjižnice, kot so malloc(), calloc(), exit() itd.
5math.hTa datoteka glave vsebuje vse funkcije, povezane z matematičnimi operacijami, kot so sqrt(), pow() itd.
6čas.hTa datoteka glave vsebuje vse funkcije, povezane s časom.
7ctype.hTa datoteka glave vsebuje vse funkcije za obdelavo znakov.
8stdarg.hFunkcije spremenljivega argumenta so definirane v tej datoteki glave.
9signal.hVse funkcije za obdelavo signalov so definirane v tej datoteki glave.
10setjmp.hTa datoteka vsebuje vse funkcije skoka.
enajstlocale.hTa datoteka vsebuje področne funkcije.
12napaka.hTa datoteka vsebuje funkcije za obravnavanje napak.
13trditi.hTa 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.