Kõik, mida peate teadma funktsioonide C kohta?

See artikkel tutvustab teile lihtsat, kuid samas väga olulist ja olulist mõistet Funktsioonid C-s ning järgneb sellele demonstratsiooniga.

See artikkel tutvustab teile lihtsat, kuid samas väga olulist ja olulist kontseptsioon, mis on funktsioonid C-s, ja järgige seda demonstratsiooniga. Järgmisi näpunäiteid käsitletakse selles artiklis,

Funktsioonid on mis tahes programmeerimiskeele ehituskivid. Lihtsamalt öeldes toimige lausekomplektis, mis võtab sisendid, täidab konkreetse ülesande ja tagastab seejärel väljundi.
Funktsiooni loomise taga on ideoloogia, mis seob konkreetse ülesande täitva seotud lausete komplekti. Nii et te ei pea erinevate sisendite jaoks mitu korda sama koodi kirjutama. Erinevate sisendite jaoks peate lihtsalt funktsiooni kutsuma, see täidab antud sisendi jaoks määratud ülesande ja tagastab väljundi. Funktsioonile saate helistada nii mitu korda kui soovite. Selles ajaveebis õpime kõiki programmeerimiskeele funktsioonide nüansse.





Alustame kõige põhimõttelisemast küsimusest.

Mis on funktsioonid C-s?

Funktsioonid on C-s samad kui mis tahes muus programmeerimiskeeles. See on koodide komplekt, mis on seotud kindla ülesande täitmiseks. Täidetav koodikomplekt on täpsustatud lokkisulgudes, s.t ‘{}’.



Enne kui õppida funktsiooni C-s kirjutama, mõistame kõigepealt, mis on selle eelised.

Funktsioonide eelised C-s

Funktsioonide eelised on ühised kõigis programmeerimiskeeltes.
Funktsiooni põhiidee on vähendada koodi koondamist. Oletame, et teil on mõni funktsioon, mida tuleb programmis mitu korda täita, nii et mitu korda kirjutamise asemel saate selle ülesande jaoks luua funktsiooni ja helistada sellele nii mitu korda kui soovite. Teine varjatud eelis on see, et kui teie funktsionaalsuse loogika muutub hiljem, ei pea te seda tegema ja muutma seda mitmes kohas. Peate lihtsalt koodi muutma ühes kohas (st funktsioonis) ja see kajastuks kogu programmis.

Modulaarsus on jällegi lisakasu. Suure koodiosa, sealhulgas iga & kõik, kirjutamine vähendab koodi loetavust ja muudab selle haldamise keeruliseks. Funktsioonide abil saate koodi jaotada üksikute funktsioonide jaotistesse, mida on lihtsam mõista ja mida on lihtsam hallata.



Funktsioon pakub ka abstraktsiooni, kus saame kutsuda funktsiooni ja saada väljundit, teadmata sisemist teostust.

Liikumine funktsiooni C tüüpidega

Funktsiooni tüübid C-s

On kahte tüüpi funktsioone:
Raamatukogu funktsioonid
Kasutaja määratletud funktsioonid

Teegi funktsioonid on need funktsioonid, mis on juba C-teegis määratletud, näiteks strcat (), printf (), scanf () jne. Nende funktsioonide kasutamiseks peate lihtsalt lisama sobivad päisefailid.
Kasutaja määratletud funktsioonid on need funktsioonid, mille kasutaja on määranud. Need funktsioonid on loodud koodi korduvkasutamiseks ning aja ja ruumi säästmiseks.

Nüüd, kui teame funktsiooni loomise eeliseid, mõistkem, kuidas funktsiooni D deklareerida.

Funktsioonide deklaratsioon ja määratlus

Funktsioonide deklaratsioon:

Funktsiooni deklaratsiooni süntaks:

return_type funktsiooni_nimi (data_type arg1, data_type arg2) int add (int x, int y) // funktsiooni deklaratsioon

Funktsioonide deklaratsioonis täpsustame funktsiooni nime, sisendparameetri arvu, nende andmetüübid ja funktsiooni tagasituleku tüübi. Funktsioonideklaratsioon annab kompilaatorile teada argumentide loendist, mida funktsioon eeldab koos oma andmetüüpide ja funktsiooni return tüübiga.

Funktsiooni deklaratsioonis on parameetri nimede määramine valikuline, kuid nende andmetüüpide määramine on kohustuslik.

int add (int, int) // funktsiooni deklaratsioon

Eespool nimetatud funktsioon võtab kaks täisarvuparameetrit.

def __init __ (ise) python

Funktsiooni määratlus

 Pilt- funktsioonid C- Edurekas
int add (int, int) // funktsiooni deklaratsioon return_type funktsiooni_nimi (parameetrid) {Function body}

Nagu ülaltoodud pildil näidatud, koosneb funktsiooni määratlus kahest osast, st funktsiooni päisest ja funktsiooni kehast

Funktsiooni päis: funktsiooni päis on sama mis funktsiooni deklaratsioon ilma semikoolonita. Funktsiooni päis sisaldab funktsiooni nime, parameetrit ja tagastuse tüüpi.

  • Tagastamise tüüp: Tagasitüüp on väärtuse andmetüüp, mille funktsioon tagastab. Funktsioon võib väärtuse tagastada või mitte. Kui see nii on, tuleks täpsustada ümberhäälestuse väärtuse andmetüüp, vastasel juhul tuleb tagastustüüp tühine.

  • Funktsiooni nimi: See on funktsiooni nimi, mille abil saame funktsiooni kutsuda siis, kui see on vajalik.

  • Parameetrid: Parameetrid on sisendväärtused, mis edastatakse funktsioonile. See räägib argumentide andmetüüpidest, nende järjestusest ja funktsioonile edastatavate argumentide arvust. Parameetrid on valikulised. Funktsioonid võivad olla ka ilma parameetriteta.

Funktsiooni keha: Funktsiooni keha on lause, mis täidab konkreetset ülesannet. See määratleb, mida funktsioon teeb.

Näide:

int lisama (int x, int y) {int summa = x + y tagastus (summa)}

Enne funktsiooni määratlemist ja kasutamist on soovitatav deklareerida funktsioon. C-s saame funktsiooni deklareerida ja määratleda samas kohas.

Näide:

#include int add (int, int) // funktsiooni deklaratsioon // funktsiooni määratlus int add (int x, int y) // funktsiooni päis {// funktsiooni body int summa = x + y return (summa)} // põhifunktsioon int main () {int summa = lisa (23, 31) printf ('% d', summa) tagastus 0}

Nagu näeme ülaltoodud näites, kutsume funktsiooni int summa = lisa (23, 31) lausega. Funktsiooni tagastatud väärtus salvestatakse summa muutujasse.

Enne edasiliikumist on paramenti mõistmiseks veel üks oluline mõiste. Parameetreid on kahte tüüpi:

Tegelik parameeter : Neid parameetreid, mis edastatakse funktsioonidele nende kutsumise ajal, nimetatakse tegelikeks parameetriteks. Näiteks ülaltoodud näites 23 ja 31 on tegelikud parameetrid.

Ametlik parameeter : Neid parameetreid, mis funktsioonid saavad, nimetatakse formaalseteks parameetriteks. Näiteks on ülaltoodud näites x & y formaalsed parameetrid.

Liigume kiiresti edasi ja mõistame funktsiooni C erinevaid võimalusi.

Funktsiooni kutsumine

Funktsiooni saab kutsuda kahel viisil:

  • Helistage väärtuse järgi
  • Helistage viitega

Helistage väärtuse järgi

Kõne väärtuse meetodi korral edastatakse funktsiooni argumendina tegeliku parameetri väärtus. Ametlike parameetrite abil ei saa tegeliku parameetri väärtust muuta.

Call be value meetodil eraldatakse ametlikele ja tegelikele parameetritele erinev mäluaadress. Lihtsalt tegeliku parameetri väärtus kopeeritakse formaalsesse parameetrisse.

Näide:

#include void Call_By_Value (int num1) {num1 = 42 printf ('nSisese funktsiooni arv on% d', num1)} int main () {int number num = 24 printf ('nBefore enne funktsiooni number on% d', num ) Call_By_Value (num) printf ('nFunktsiooni järel on number% dn', num) tagastab 0}

Väljund

Ülaltoodud näites on enne väärtuse funktsiooni järgi helistamist numbri väärtus 24. Siis, kui me funktsiooni kutsume ja väärtuse edastame ning funktsiooni sees muudame, saab sellest 42. Kui me tuleme tagasi ja printime väärtuse uuesti arv põhifunktsioonis muutub 24-ks.

Helistage viitega

Viite abil edastatakse tegeliku parameetri mäluaadress funktsioonile kui argument. Siin saab tegeliku parameetri väärtust muuta formaalse parameetri abil.

Sama mäluaadressi kasutatakse nii tegeliku kui formaalse parameetri jaoks. Seega, kui formaalse parameetri väärtust muudetakse, kajastub see ka tegelikus parameetris.

C-s kasutame viidete abil kõne rakendamiseks osutajaid. Nagu näete allpool, ootab funktsioon Call_By_Reference kursorit täisarvule.

Nüüd salvestab see muutuja num1 tegeliku parameetri mäluaadressi. Nii et numbriga 1 tähistatud mäluaadressile salvestatud väärtuse printimiseks peame kasutama dereference-operaatorit, st *. Seega on * num1 väärtus 42.

Aadressioperaatorit kasutatakse mis tahes andmetüübi muutuja aadressi saamiseks. Niisiis edastatakse funktsioonikõne avalduses ‘Call_By_Reference (& num)’ numbri aadress, nii et numbrit saab selle aadressi abil muuta.

Näide

#include // funktsiooni määratlus void Call_By_Reference (int * num1) {* num1 = 42 printf ('nIndide funktsioon, arv on% d', * num1)} // Põhifunktsioon int main () {int number num = 24 printf ( 'nEnne funktsiooni, number on% d', num) Call_By_Reference (& num) printf ('nFunktsiooni järel on number% dn', num) return 0}

Väljund

Selles näites on num väärtus algselt 24, põhifunktsiooni sees. Kui see on edastatud funktsioonile Call_By_Reference ja väärtust on ametliku parameetriga muudetud, muutus see ka tegeliku parameetri jaoks. Sellepärast, kui trükime funktsiooni numbri väärtuse pärast printimist, 42.

Liikumine kasutaja määratud funktsioonide tüüpidega C-s

Kasutaja määratud tüübid Funktsioon aastal C

Vastuvõetud tüübi ja vastuvõetud argumentide põhjal on erinevaid kasutaja määratletud funktsioone.

Edasi liikudes pole ühtegi argumenti edastatud ja tagastusväärtust pole

1. Ühtegi argumenti pole edastatud ja väärtus puudub

Süntaks:

java loop-programmide näidete jaoks

funktsiooni deklaratsioon:

void function () function call: function () funktsiooni määratlus: void function () {lause}

Näide

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

Edasi liikudes pole ühtegi argumenti edastatud, kuid tagastusväärtus

2 Ühtegi argumenti pole edastatud, kuid tagastusväärtus

Süntaks:

funktsiooni deklaratsioon:

int funktsioon () funktsiooni kutse: funktsioon () funktsiooni määratlus: int funktsioon () {laused tagastavad a}

Näide:

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

Edastatud argumentidega edasi liikumine, kuid tagastusväärtus puudub

3 Argument on edastatud, kuid tagastusväärtust pole

Süntaks:

funktsiooni deklaratsioon:

void function (int) function call: funktsioon (a) funktsiooni määratlus: void function (int a) {lause}

Näide:

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

Edastatud argumendi ja tagastatava väärtuse abil edasi liikumine

4 Vastuvõetud argument ja tagastusväärtus

Süntaks:

funktsiooni deklaratsioon:

int funktsioon (int) funktsiooni väljakutse: funktsioon (a) funktsiooni määratlus: int funktsioon (int a) {laused tagastavad a}

Näide

#include int add (int, int) int add (int x, int y) {int summa = x + y return (summa)} int main () {int summa = lisa (23, 31) printf ('% d' , summa) tagastus 0}

Vaatame nüüd kiiresti C-teegi funktsioone, mis on programmi kirjutamiseks olulised.

C raamatukogu funktsioonid

Raamatukogu funktsioonid on C-s eelnevalt määratletud ja vaikimisi olemas olevad funktsioonid. Peate lihtsalt lisama konkreetse päisefaili programmi ja saate kasutada selles päisefailis määratletud funktsioone. Iga päisefail pakub teatud tüüpi funktsionaalsust. Päisefaili laiend on .h.

Näiteks funktsioonide printf / scanf kasutamiseks peame lisama oma programmi stdio.h, mis pakub funktsioone standardse sisendi / väljundi osas.

Järgmine on päisefailide loend.

üksstdio.hStandardne sisendi / väljundi päisefail
2vermimine.hKonsooli sisendi / väljundi päisefail
3string.hStringiga seotud teegi funktsioonid, nagu näiteks get (), put () jne.
4stdlib.hÜldised raamatukogu funktsioonid, nagu malloc (), calloc (), exit () jne.
5matemaatika.hMatemaatiliste toimingutega seotud funktsioonid, nagu sqrt (), pow () jne.
6aeg.hAjaga seotud funktsioonid
7ctype.hMärkide haldamise funktsioonid
8stdarg.hMuutuja argumentfunktsioonid
9signaal.hSignaali käsitsemise funktsioonid
10setjmp.hHüppefunktsioonid
üksteistlocale.hLokaadi funktsioonid
12errno.hVigade käsitsemise funktsioonid
13kinnitada.hDiagnostika funktsioonid

Pärast ülaltoodud C-funktsioonide läbimist oleksite mõistnud funktsiooni igat nüanssi ja kuidas seda C-keeles rakendada. Loodan, et see ajaveeb on informatiivne ja annab teile lisaväärtust.

Seega oleme jõudnud selle artikli peatükini „Funktsioonid C-s”. Kui soovite rohkem teada saada, vaadake järgmist , usaldusväärne veebipõhine õppefirma. Edureka Java J2EE ja SOA koolitus- ja sertifitseerimiskursus on mõeldud selleks, et õpetada teid nii Java põhiliste kui ka edasijõudnute kontseptsioonide jaoks koos erinevate Java-raamistikega nagu Hibernate & Spring.

Kas teil on meile küsimus? Palun mainige seda selle blogi kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.