logo

C funkcije

A funkcija v C je niz stavkov, ki ob klicu opravijo določeno nalogo. Je osnovni gradnik programa C, ki zagotavlja modularnost in možnost ponovne uporabe kode. Programski stavki funkcije so priloženi { } oklepaji , ki ima določene pomene in izvaja določene operacije. V drugih jezikih jih imenujemo tudi podprogrami ali procedure.

V tem članku bomo spoznali funkcije, definicijo funkcij. deklaracija, argumenti in parametri, vrnjene vrednosti in še veliko več.



Sintaksa funkcij v C

Sintakso funkcije lahko razdelimo na 3 vidike:

    Deklaracija funkcije Definicija funkcije Klici funkcij

Deklaracije funkcij

V deklaraciji funkcije moramo podati ime funkcije, vrsto vrnitve ter število in vrsto njenih parametrov. Deklaracija funkcije pove prevajalniku, da je funkcija z danim imenom definirana nekje drugje v programu.

Sintaksa

return_type name_of_the_function  ( parameter_1 , parameter_2 );>

Pri deklaraciji funkcij ime parametra ni obvezno. Funkcijo lahko deklariramo tudi brez uporabe imena podatkovnih spremenljivk.



Primer

int sum (int a , int b ); int sum (int , int);>
Deklaracija funkcije

Deklaracija funkcije

Opomba: Funkcijo v C je treba vedno deklarirati globalno, preden jo pokličete.

Definicija funkcije

Definicija funkcije je sestavljena iz dejanskih stavkov, ki se izvedejo, ko je funkcija priklicana (tj. ko krmilnik programa pride do funkcije).



Funkcija C je na splošno definirana in deklarirana v enem samem koraku, ker se definicija funkcije vedno začne z deklaracijo funkcije, zato nam je ni treba izrecno deklarirati. Spodnji primer služi kot definicija funkcije in deklaracija.

return_type function_name (para1_type  para1_name,  para2_type  para2_name ) { // body of the function }>
Definicija funkcije v C

Definicija funkcije v C

Klic funkcije

Klic funkcije je stavek, ki naroči prevajalniku, naj izvede funkcijo. Pri klicu funkcije uporabimo ime funkcije in parametre.

V spodnjem primeru se pokliče prva funkcija vsote in 10,30 se posreduje funkciji vsote. Ko je vrnjena vsota klica funkcije a in b, se tudi nadzor vrne nazaj k glavni funkciji programa.

Delovanje funkcije v C

Delovanje funkcije v C

Opomba: Klic funkcije je potreben, da krmiljenje programa pripelje do definicije funkcije. Če niso poklicani, se funkcijski stavki ne bodo izvedli.

Primer funkcije C

C




// C program to show function> // call and definition> #include> // Function that takes two parameters> // a and b as inputs and returns> // their sum> int> sum(>int> a,>int> b)> {> >return> a + b;> }> // Driver code> int> main()> {> >// Calling sum function and> >// storing its value in add variable> >int> add = sum(10, 30);> > >printf>(>'Sum is: %d'>, add);> >return> 0;> }>

>

usedelimiter java
>

Izhod

Sum is: 40>

Kot smo opazili, nismo uporabili eksplicitne deklaracije funkcije. Funkcijo smo preprosto definirali in poklicali.

Vrsta vrnitve funkcije

Vrsta vrnitve funkcije pove, katera vrsta vrednosti je vrnjena po izvedbi vseh funkcij. Ko ne želimo vrniti vrednosti, lahko uporabimo podatkovni tip void.

primer:

int func(parameter_1,parameter_2);>

Zgornja funkcija bo po izvajanju stavkov znotraj funkcije vrnila celoštevilsko vrednost.

Opomba: Funkcija C lahko vrne samo eno vrednost. Če želimo vrniti več vrednosti, moramo uporabiti kazalce ali strukture.

Argumenti funkcije

Funkcijski argumenti (znani tudi kot funkcijski parametri) so podatki, ki se posredujejo funkciji.

primer:

int function_name(int var1, int var2);>

Pogoji vrnjenih vrst in argumentov

V programskem jeziku C lahko funkcije kličemo z ali brez argumentov in lahko vrnejo vrednosti. Klicnim funkcijam lahko vrnejo vrednosti ali pa tudi ne.

  1. Funkcija brez argumentov in vrnjene vrednosti
  2. Funkcija brez argumentov in s povratno vrednostjo
  3. Funkcija z argumentom in brez vrnjene vrednosti
  4. Funkcija z argumenti in s povratno vrednostjo

Če želite izvedeti več o funkcijskih argumentih in vrnjenih vrednostih, si oglejte članek – Funkcijski argumenti in vrnjene vrednosti v C.

Kako deluje funkcija C?

Delovanje funkcije C je mogoče razdeliti na naslednje korake, kot je navedeno spodaj:

    Deklaracija funkcije: Deklaracija funkcije je korak, kjer deklariramo funkcijo. Tukaj definiramo povratne vrste in parametre funkcije.
  1. Definiranje funkcije:
  2. Klicanje funkcije: Klicanje funkcije je korak, pri katerem pokličemo funkcijo s posredovanjem argumentov v funkciji. Izvajanje funkcije: Izvajanje funkcije je korak, kjer lahko izvajamo vse stavke znotraj funkcije, da dobimo končni rezultat. Vrnitev vrednosti: Vrnitev vrednosti je korak, kjer se vrne izračunana vrednost po izvedbi funkcije. Izhod iz funkcije je zadnji korak, kjer se uniči ves dodeljeni pomnilnik spremenljivkam, funkcijam itd., preden se da popoln nadzor glavni funkciji.

Vrste funkcij

V C obstajata dve vrsti funkcij:

    Funkcije knjižnice Uporabniško definirane funkcije
Vrste funkcij

Vrste funkcij v C

1. Funkcija knjižnice

Funkcija knjižnice se imenuje tudi a vgrajeno funkcijo . Paket prevajalnika, ki vsebuje te funkcije, že obstaja, od katerih ima vsaka poseben pomen in je vključena v paket. Vgrajene funkcije imajo prednost, da so neposredno uporabne, ne da bi bile definirane, medtem ko je treba uporabniško definirane funkcije pred uporabo deklarirati in definirati.

Na primer:

pow(), sqrt(), strcmp(), strcpy() etc.>

Prednosti funkcij knjižnice C

  • Funkcije knjižnice C so enostavne za uporabo in optimizirane za boljše delovanje.
  • Funkcije knjižnice C prihranijo veliko časa, tj. čas razvoja funkcij.
  • Funkcije knjižnice C so priročne, saj vedno delujejo.

primer:

C




ukaz dotik v linuxu

// C program to implement> // the above approach> #include> #include> // Driver code> int> main()> {> >double> Number;> >Number = 49;> >// Computing the square root with> >// the help of predefined C> >// library function> >double> squareRoot =>sqrt>(Number);> > >printf>(>'The Square root of %.2lf = %.2lf'>,> >Number, squareRoot);> >return> 0;> }>

>

>

Izhod

The Square root of 49.00 = 7.00>

2. Uporabniško določena funkcija

Funkcije, ki jih programer ustvari, so znane kot uporabniško določene funkcije oz funkcije po meri . Uporabniško določene funkcije je mogoče izboljšati in spremeniti glede na potrebe programerja. Kadar koli napišemo funkcijo, ki je specifična za primere in ni definirana v nobeni datoteki glave, moramo deklarirati in definirati lastne funkcije v skladu s sintakso.

Prednosti uporabniško definiranih funkcij

  • Spremenljive funkcije je mogoče spremeniti po potrebi.
  • Kodo teh funkcij je mogoče ponovno uporabiti v drugih programih.
  • Te funkcije je enostavno razumeti, odpraviti napake in vzdrževati.

primer:

C




// C program to show> // user-defined functions> #include> int> sum(>int> a,>int> b)> {> >return> a + b;> }> // Driver code> int> main()> {> >int> a = 30, b = 40;> > >// function call> >int> res = sum(a, b);> >printf>(>'Sum is: %d'>, res);> >return> 0;> }>

>

>

Izhod

Sum is: 70>

Posredovanje parametrov funkcijam

Podatki, posredovani ob klicu funkcije, so znani kot dejanski parametri. V spodnjem programu sta 10 in 30 znana kot dejanska parametra. Formalni parametri so spremenljivka in podatkovni tip, kot je navedeno v deklaraciji funkcije. V spodnjem programu sta a in b znana kot formalna parametra.

Posredovanje parametrov funkcijam

Posredovanje parametrov funkcijam

Funkciji C lahko posredujemo argumente na dva načina:

  1. Pass by Value
  2. Pass by Reference

1. Predaj po vrednosti

Posredovanje parametrov v tej metodi kopira vrednosti iz dejanskih parametrov v formalne parametre funkcije. Posledično se morebitne spremembe znotraj funkcij ne odražajo v parametrih klicatelja.

primer:

C




// C program to show use> // of call by value> #include> void> swap(>int> var1,>int> var2)> {> >int> temp = var1;> >var1 = var2;> >var2 = temp;> }> // Driver code> int> main()> {> >int> var1 = 3, var2 = 2;> >printf>(>'Before swap Value of var1 and var2 is: %d, %d '>,> >var1, var2);> >swap(var1, var2);> >printf>(>'After swap Value of var1 and var2 is: %d, %d'>,> >var1, var2);> >return> 0;> }>

>

>

kako pretvoriti niz v celo število v Javi
Izhod

Before swap Value of var1 and var2 is: 3, 2 After swap Value of var1 and var2 is: 3, 2>

2. Predaj po sklicu

Dejanski parametri klicatelja in dejanski parametri funkcije se nanašajo na iste lokacije, zato se vse spremembe znotraj funkcije odražajo v dejanskih parametrih klicatelja.

primer:

C




// C program to show use of> // call by Reference> #include> void> swap(>int> *var1,>int> *var2)> {> >int> temp = *var1;> >*var1 = *var2;> >*var2 = temp;> }> // Driver code> int> main()> {> >int> var1 = 3, var2 = 2;> >printf>(>'Before swap Value of var1 and var2 is: %d, %d '>,> >var1, var2);> >swap(&var1, &var2);> >printf>(>'After swap Value of var1 and var2 is: %d, %d'>,> >var1, var2);> >return> 0;> }>

>

>

Izhod

Before swap Value of var1 and var2 is: 3, 2 After swap Value of var1 and var2 is: 2, 3>

Prednosti funkcij v C

Funkcije v jeziku C so zelo uporabna funkcija jezika C s številnimi prednostmi, kot je navedeno spodaj:

  1. Funkcija lahko zmanjša ponavljanje istih stavkov v programu.
  2. Funkcija naredi kodo berljivo z zagotavljanjem modularnosti našega programa.
  3. Ni določenega števila klicnih funkcij, kličete jih lahko tolikokrat, kot želite.
  4. Funkcija zmanjša velikost programa.
  5. Ko je funkcija deklarirana, jo lahko preprosto uporabite, ne da bi razmišljali o notranjem delovanju funkcije.

Slabosti funkcij v C

Glavne pomanjkljivosti funkcij v C so naslednje:

  1. Ni mogoče vrniti več vrednosti.
  2. Preobremenitev pomnilnika in časa zaradi dodeljevanja okvirov skladov in prenosa nadzora programa.

Zaključek

V tem članku smo razpravljali o naslednjih točkah o funkciji, kot je navedeno spodaj:

obj v Javi
  1. Funkcija je blok kode, ki ga lahko znotraj programa uporabimo kolikorkrat želimo.
  2. Za uporabo funkcije moramo poklicati funkcijo.
  3. Deklaracija funkcije vključuje ime_funkcije, vrnjeno vrsto in parametre.
  4. Definicija funkcije vključuje telo funkcije.
  5. Funkcija je dveh vrst, uporabniško definirana funkcija in funkcija knjižnice.
  6. V funkciji lahko glede na dve vrsti kličemo po vrednosti in kličemo po sklicu glede na posredovane vrednosti.

Pogosta vprašanja o funkcijah v C

Q1. Definirajte funkcije.

odgovor:

Funkcije so blok kode, ki se izvede vsakič, ko jih pokličemo med izvajanjem programa.

Q2. Kaj je vnaprejšnja izjava?

odgovor:

Včasih definiramo funkcijo po klicu, da zagotovimo boljšo berljivost. V takih primerih deklariramo funkcijo pred njihovo definicijo in klicem. Takšna izjava se imenuje posredna izjava.

Q3. Kakšna je razlika med deklaracijo funkcije in definicijo?

odgovor:

Podatki, kot so ime funkcije, vrsta vrnitve in parameter, so vključeni v deklaracijo funkcije, medtem ko je definicija telo funkcije. Vsi ti podatki so v skupni rabi s prevajalnikom glede na njihove ustrezne korake.

Q4. Kakšna je razlika med argumenti funkcije in parametri?

odgovor:

Funkcijski parametri so vrednosti, deklarirane v deklaraciji funkcije. Medtem ko so argumenti funkcije vrednosti, ki so posredovane funkciji med klicem funkcije.

primer:

 int func(int x,int y); func(10,20);>

Tu sta int x in int y parametra, medtem ko sta 10 in 20 argumenta, posredovana funkciji.

Če želite izvedeti več o tem, glejte ta članek – Razlika med argumenti in parametri v C.

V5. Ali lahko iz funkcije C vrnemo več vrednosti?

odgovor:

Ne, na splošno ni mogoče vrniti več vrednosti iz funkcije. Lahko pa uporabimo bodisi kazalci na statične ali kopične pomnilniške lokacije za vrnitev več vrednosti ali pa podatke vstavimo v struktura in nato vrne strukturo.

Če želite izvedeti več o tem, glejte ta članek – Kako vrniti več vrednosti iz funkcije v C ali C++?

V6. Kaj je dejanski in formalni parameter?

odgovor:

Formalni parameter: Spremenljivke, deklarirane v prototipu funkcije, so znane kot formalni argumenti ali parametri.

Dejanski parameter: Vrednosti, ki so posredovane v funkciji, so znane kot dejanski argumenti ali parametri.