Vse, kar morate vedeti o funkcijah v C?



Ta članek vam bo predstavil preprost, a zelo temeljni in pomemben koncept, ki je Funkcije v C, in mu sledil s predstavitvijo.

Ta članek vam bo predstavil preprosto, a zelo temeljno in pomembno koncept, ki je Funkcije v C, in mu sledite s predstavitvijo. V tem članku bodo zajeti naslednji napotki:

Funkcije so gradniki katerega koli programskega jezika. Z enostavnimi besedami deluje v nizu stavkov, ki zajema vnose, izvede določeno nalogo in nato vrne izhod.
Ideologija, ki stoji za funkcijo ustvarjanja, je povezati niz povezanih stavkov, ki izvajajo določeno nalogo. Torej vam ni treba večkrat pisati iste kode za različne nabore vhodov. Funkcijo morate poklicati za različne vhode, izvedla bo določeno nalogo za dani vhod in vrnila izhod. Funkcijo lahko pokličete, kolikor želite. V tem blogu se bomo naučili vseh & vseh odtenkov o funkcijah v programskem jeziku C.





Začnimo z najbolj temeljnim vprašanjem.

Kaj so funkcije v C?

Funkcije so v jeziku C enake kot pri katerem koli drugem programskem jeziku. Je nabor kod, ki se vežejo za izvajanje določene naloge. Nabor kode, ki ga je treba izvesti, je določen v zavitih oklepajih, tj. '{}'



Preden se naučimo, kako napisati funkcijo v jeziku C, najprej razumemo, kakšne so prednosti.

Prednosti funkcij v C

Prednosti funkcij so skupne vsem programskim jezikom.
Glavna ideja funkcije je zmanjšati odvečnost kode. Recimo, da imate funkcionalnost, ki jo je treba v programu izvesti večkrat, zato lahko namesto večkratnega pisanja ustvarite funkcijo za to nalogo in jo pokličete, kolikor želite. Druga skrita prednost je, če se logika vaše funkcionalnosti pozneje spremeni, vam ni treba nadaljevati in jo spreminjati na več mestih. Samo kodo morate spremeniti na enem mestu (tj. V funkciji), kar bi se odražalo v celotnem programu.

Modularnost je spet dodatna prednost. Pisanje velikega dela kode, vključno z vsakim in vsem, zmanjšuje berljivost kode in otežuje upravljanje. Kodo lahko razdelite na odseke za posamezne funkcionalnosti z uporabo funkcij, ki so enostavnejše za razumevanje in lažje upravljanje.



Funkcija zagotavlja tudi abstrakcijo, kjer lahko pokličemo funkcijo in dobimo izhodne podatke, ne da bi poznali interno izvedbo.

Nadaljevanje s tipi funkcije C

Vrste funkcij v jeziku C

Obstajata dve vrsti funkcij:
Knjižnične funkcije
Uporabniško določene funkcije

Funkcije knjižnice so tiste funkcije, ki so že definirane v knjižnici C, kot so strcat (), printf (), scanf () itd. Za uporabo teh funkcij morate vključiti le ustrezne datoteke glave.
Uporabniško določene funkcije so tiste funkcije, ki jih določi uporabnik. Te funkcije so narejene za večkratno uporabo kode ter za prihranek časa in prostora.

Zdaj, ko poznamo prednosti ustvarjanja funkcije, razumimo, kako funkcijo prijaviti v C.

Izjava in definicija funkcije

Izjava o funkciji:

Sintaksa izjave funkcije:

return_type ime_funkcije (data_type arg1, data_type arg2) int add (int x, int y) // izjava funkcije

V izjavi o funkciji določimo ime funkcije, število vhodnih parametrov, njihove podatkovne tipe in vrsto vrnitve funkcije. Deklaracija funkcije sporoči prevajalniku o seznamu argumentov, ki jih funkcija pričakuje s svojimi podatkovnimi tipi in vrnjenim tipom funkcije.

V izjavi o funkciji navedba imen parametra ni obvezna, vendar je določanje njihovih podatkovnih tipov obvezno.

int add (int, int) // izjava funkcije

Zgoraj navedena funkcija bo imela dva celoštevilna parametra.

Opredelitev funkcije

 Slika - Funkcije v C- Edureka
int add (int, int) // deklaracija funkcije return_type ime_funkcije (parametri) {telo funkcije}

Kot je prikazano na zgornji sliki, je definicija funkcije sestavljena iz dveh delov, tj. Glave funkcije in telesa funkcije

Glava funkcije: Glava funkcije je enaka izjavi funkcije brez podpičja. Glava funkcije vsebuje ime funkcije, parameter in vrsto vrnitve.

  • Vrsta vrnitve: Vrnjeni tip je podatkovni tip vrednosti, ki jo bo funkcija vrnila. Funkcija lahko vrne vrednost ali pa tudi ne. V nasprotnem primeru je treba navesti podatkovni tip vrednosti ponovnega vnašanja, sicer mora biti vrsta vrnitve nična.

  • Ime funkcije: To je ime funkcije, s katero lahko funkcijo pokličemo, kadar in kjer je to potrebno.

  • Parametri: Parametri so vhodne vrednosti, ki bodo posredovane funkciji. Pripoveduje o podatkovnih vrstah argumentov, njihovem vrstnem redu in številu argumentov, ki bodo posredovani funkciji. Parametri niso obvezni. Imate lahko tudi funkcije brez parametrov.

Telo funkcije: Telo funkcije je niz stavka, ki izvaja določeno nalogo. Določa, kaj naredi funkcija.

Primer:

int add (int x, int y) {int sum = x + y return (sum)}

Priporočljivo je prijaviti funkcijo, preden jo definiramo in uporabimo. V C lahko funkcijo prijavimo in definiramo na istem mestu.

Primer:

#include int add (int, int) // izjava funkcije // definicija funkcije int add (int x, int y) // glava funkcije {// telo telesa int sum = x + y return (sum)} // glavna funkcija int main () {int sum = add (23, 31) printf ('% d', sum) return 0}

Kot lahko vidimo v zgornjem primeru, da funkcijo prikličemo z uporabo stavka int sum = add (23, 31). Vrnjena vrednost iz funkcije je shranjena v spremenljivki vsote.

Preden gremo naprej, je o paramentu treba razumeti še en pomemben koncept. Obstajata dve vrsti parametrov:

Dejanski parameter : Tisti parametri, ki se funkcijam posredujejo med njihovim klicem, so znani kot dejanski parametri. Na primer 23 in 31 v zgornjem primeru sta dejanska parametra.

Formalni parameter : Parametri, ki jih funkcije prejmejo, so znani kot formalni parametri. Na primer, x & y v zgornjem primeru so formalni parametri.

Hitro pojdimo naprej in razumemo različne načine klicanja funkcije v C.

Klicanje funkcije

Funkcijo lahko pokličemo na dva načina:

  • Pokliči po vrednosti
  • Pokličite po referenci

Pokliči po vrednosti

Pri metodi klica z vrednostjo se vrednost dejanskega parametra posreduje kot argument funkciji. Vrednosti dejanskega parametra formalni parametri ne morejo spremeniti.

Pri metodi call be value se formalnim in dejanskim parametrom dodeli drugačen naslov pomnilnika. Samo vrednost dejanskega parametra se kopira v formalni parameter.

Primer:

#include void Call_By_Value (int num1) {num1 = 42 printf ('nInside Function, Number is% d', num1)} int main () {int num num = 24 printf ('nBefore Function, Number is% d', num ) Call_By_Value (num) printf ('nPo funkciji je število% dn', num) return 0}

Izhod

razlika med preobremenitvijo metode in preglasitvijo metode

V zgornjem primeru je pred klicem funkcije vrednosti vrednost num 24. Potem, ko funkcijo pokličemo in ji posredujemo vrednost ter jo spremenimo znotraj funkcije, postane 42. Ko se vrnemo in znova natisnemo vrednost števila v glavni funkciji, postane 24.

Pokličite po referenci

Pri klicu s sklicem se pomnilniški naslov dejanskega parametra posreduje funkciji kot argument. Tu lahko vrednost dejanskega parametra spremeni formalni parameter.

Za dejanski in formalni parameter se uporablja isti naslov pomnilnika. Torej, če je vrednost formalnega parametra spremenjena, se to odraža tudi z dejanskim parametrom.

V jeziku C uporabljamo kazalce za izvajanje klica po referenci. Kot lahko vidite v spodnjem primeru, funkcija Call_By_Reference pričakuje kazalec na celo število.

Zdaj bo ta spremenljivka num1 shranila pomnilniški naslov dejanskega parametra. Za tiskanje vrednosti, ki je shranjena na pomnilniškem naslovu, označenem s številko1, moramo uporabiti dereference operator, tj. *. Torej, vrednost * num1 je 42.

Naslovni operator & se uporablja za pridobivanje naslova spremenljivke katerega koli podatkovnega tipa. Torej je v stavku klica funkcije ‘Call_By_Reference (& num)’ naslov num poslan, tako da je mogoče num spremeniti s svojim naslovom.

Primer

#include // definicija funkcije void Call_By_Reference (int * num1) {* num1 = 42 printf ('nInside Function, Number is% d', * num1)} // Main Function int main () {int num num = 24 printf ( 'nPred funkcijo je število% d', število) Call_By_Reference (& num) printf ('nPo funkciji je število% dn', število) return 0}

Izhod

V tem primeru je vrednost num na začetku 24 znotraj glavne funkcije. Ko je posredovana funkciji Call_By_Reference in je vrednost spremenjena s formalnim parametrom, se je spremenila tudi za dejanski parameter. Zato pri tiskanju vrednosti num po funkciji tiskamo 42.

Nadaljevanje z vrstami uporabniško določenih funkcij v jeziku C.

Vrste uporabniško določenih Funkcija v C

Na podlagi vrste vrnitve in posredovanih argumentov obstajajo različne vrste uporabniško določenih funkcij.

Nadaljujemo z brez posredovanih argumentov in brez vrnjene vrednosti

1. Noben argument ni poslan in ni vrnjene vrednosti

Sintaksa:

izjava funkcije:

void function () funkcijski klic: function () definicija funkcije: void function () {stavki}

Primer

#include void add () void add () {int x = 20 int y = 30 int sum = x + y printf ('sum% d', sum)} int main () {add () return 0}

Nadaljujemo z brez posredovanih argumentov, ampak z vrnjeno vrednostjo

2 Noben argument ni bil poslan, ampak vrnjena vrednost

Sintaksa:

izjava funkcije:

int function () funkcijski klic: function () definicija funkcije: int function () {stavki vrnejo}

Primer:

#include int add () int add () {int x = 20 int y = 30 int sum = x + y return (sum)} int main () {int sum sum = add () printf ('sum% d', vsota) vrnitev 0}

Nadaljevanje z Argumenti uspešno, vendar brez vrnjene vrednosti

3 Argument je bil poslan, vendar ni vrnjene vrednosti

Sintaksa:

izjava funkcije:

void function (int) funkcijski klic: function (a) definicija funkcije: void function (int a) {stavki}

Primer:

#include void add (int, int) void add (int x, int y) {int sum = x + y return (sum)} int main () {add (23, 31) return 0}

Nadaljujemo z Argument argument in vrnjeno vrednostjo

4 Argument je bil poslan in vrnjena vrednost

Sintaksa:

izjava funkcije:

vrsta matrike c ++
klic funkcije int (int): funkcija (a) opredelitev funkcije: funkcija int (int a) {stavki vrnejo a}

Primer

#include int add (int, int) int add (int x, int y) {int sum = x + y return (sum)} int main () {int sum = add (23, 31) printf ('% d' , vsota) vrnitev 0}

Zdaj pa na hitro poglejmo funkcije knjižnice C, ki so pomembne za pisanje programa.

C Knjižnične funkcije

Knjižnične funkcije so funkcije v jeziku C, ki so vnaprej določene in so privzeto prisotne. V program morate vključiti samo določeno datoteko glave in lahko uporabite funkcije, določene v tej datoteki glave. Vsaka datoteka glave ponuja določeno vrsto funkcionalnosti. Razširitev datoteke glave je .h.

Na primer, za uporabo funkcij printf / scanf moramo v naš program vključiti stdio.h, ki zagotavlja funkcionalnost glede standardnega vhoda / izhoda.

Sledi seznam datotek z glavo.

enostdio.hStandardna vhodno / izhodna datoteka glave
2.kovanje.hDatoteka glave vhodno / izhodne konzole konzole
3.niz.hFunkcije knjižnice, povezane z nizom, kot so get (), put () itd.
4.stdlib.hSplošne funkcije knjižnice, kot so malloc (), calloc (), exit () itd.
5.math.hFunkcije, povezane z matematičnimi operacijami, kot so sqrt (), pow () itd.
6.čas.hFunkcije, povezane s časom
7.ctype.hFunkcije upravljanja znakov
8.stdarg.hFunkcije spremenljivih argumentov
9.signal.hFunkcije obdelave signalov
10.setjmp.hSkočne funkcije
enajstpodročne nastavitve.hLokalne funkcije
12.errno.hNapake pri ravnanju s funkcijami
13.trdi.hDiagnostične funkcije

Po pregledu zgornjih funkcij C bi razumeli vsak & vsak odtenek funkcije in kako jo uporabiti v jeziku C. Upam, da je ta spletni dnevnik informativen in dodane vrednosti za vas.

Tako smo prišli do konca tega članka o 'Funkcijah v C'. Če želite izvedeti več, si oglejte , zaupanja vredno podjetje za spletno učenje. Edurekin tečaj za usposabljanje in certificiranje Java J2EE in SOA je zasnovan tako, da vas usposobi za temeljne in napredne koncepte Java, skupaj z različnimi Java okviri, kot sta Hibernate & Spring.

Imate vprašanje za nas? Prosimo, omenite to v oddelku za komentarje tega spletnega dnevnika, mi pa se vam bomo javili v najkrajšem možnem času.