C dalyje didelę programą galime padalyti į pagrindinius blokus, žinomus kaip funkcija. Funkcijoje yra programavimo teiginių rinkinys, įtrauktas į {}. Funkcija gali būti iškviesta kelis kartus, kad C programa būtų galima pakartotinai naudoti ir moduliuoti. Kitaip tariant, galime sakyti, kad funkcijų rinkinys sukuria programą. Funkcija taip pat žinoma kaip procedūra arba paprogramė kitomis programavimo kalbomis.
Funkcijų pranašumas C
Yra šie C funkcijų pranašumai.
- Naudodami funkcijas galime išvengti tos pačios logikos / kodo perrašymo programoje.
- C funkcijas galime iškviesti bet kokį skaičių kartų programoje ir iš bet kurios programos vietos.
- Mes galime lengvai sekti didelę C programą, kai ji yra padalinta į kelias funkcijas.
- Pakartotinis naudojimas yra pagrindinis C funkcijų pasiekimas.
- Tačiau funkcijų iškvietimas C programoje visada yra papildomos išlaidos.
Funkcijų aspektai
Yra trys C funkcijos aspektai.
SN | C funkcijos aspektai | Sintaksė |
---|---|---|
1 | Funkcijos deklaracija | return_type funkcijos_pavadinimas (argumentų sąrašas); |
2 | Funkcijos skambutis | funkcijos_pavadinimas (argumentų_sąrašas) |
3 | Funkcijos apibrėžimas | return_type funkcijos_pavadinimas (argumentų sąrašas) {function body;} |
Funkcijos kūrimo c kalba sintaksė pateikta žemiau:
return_type function_name(data_type parameter...){ //code to be executed }
Funkcijų tipai
C programuojant yra dviejų tipų funkcijos:
Grąžinimo vertė
C funkcija gali arba negali grąžinti funkcijos reikšmės. Jei neturite grąžinti jokios funkcijos reikšmės, grąžinimo tipui naudokite void.
Pažiūrėkime paprastą C funkcijos pavyzdį, kuris negrąžina jokios funkcijos reikšmės.
Pavyzdys be grąžinimo vertės:
void hello(){ printf('hello c'); }
Jei norite grąžinti bet kokią funkcijos reikšmę, turite naudoti bet kokį duomenų tipą, pvz., int, long, char ir tt Grąžinimo tipas priklauso nuo reikšmės, kurią reikia grąžinti iš funkcijos.
paštininkas
Pažiūrėkime paprastą C funkcijos pavyzdį, kuris grąžina int reikšmę iš funkcijos.
Pavyzdys su grąžinimo verte:
int get(){ return 10; }
Aukščiau pateiktame pavyzdyje turime grąžinti 10 kaip reikšmę, todėl grąžinimo tipas yra int. Jei norite grąžinti slankiojo kablelio reikšmę (pvz., 10,2, 3,1, 54,5 ir tt), kaip metodo grąžinimo tipą turite naudoti float.
float get(){ return 10.2; }
Dabar reikia iškviesti funkciją, kad gautumėte funkcijos reikšmę.
Įvairūs funkcijų iškvietimo aspektai
Funkcija gali priimti arba nepriimti bet kokių argumentų. Tai gali grąžinti bet kokią vertę arba ne. Remiantis šiais faktais, yra keturi skirtingi funkcijų iškvietimų aspektai.
- funkcija be argumentų ir be grąžinamos vertės
- funkcija be argumentų ir su grąžinama reikšme
- funkcija su argumentais ir be grąžinamos reikšmės
- funkcija su argumentais ir grąžinama reikšme
Funkcijos be argumento ir grąžinimo vertės pavyzdys
1 pavyzdys
#include void printName(); void main () { printf('Hello '); printName(); } void printName() { printf('Javatpoint'); }
Išvestis
Hello Javatpoint
2 pavyzdys
#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); }
Išvestis
smiginio sąrašas
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Funkcijos be argumento ir su grąžinimo reikšme pavyzdys
1 pavyzdys
#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; }
Išvestis
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
2 pavyzdys: programa kvadrato plotui apskaičiuoti
duomenų struktūra
#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; }
Išvestis
Going to calculate the area of the square Enter the length of the side in meters: 10 The area of the square: 100.000000
Funkcijos su argumentu ir be grąžinimo reikšmės pavyzdys
1 pavyzdys
#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); }
Išvestis
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
2 pavyzdys: programa, skirta apskaičiuoti penkių skaičių vidurkį.
#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); }
Išvestis
Going to calculate the average of five numbers: Enter five numbers:10 20 30 40 50 The average of given five numbers : 30.000000
Funkcijos su argumentu ir grąžinimo reikšme pavyzdys
1 pavyzdys
#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; }
Išvestis
Going to calculate the sum of two numbers: Enter two numbers:10 20 The sum is : 30
2 pavyzdys: Programa, skirta patikrinti, ar skaičius yra lyginis ar nelyginis
#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; } }
Išvestis
Going to check whether a number is even or odd Enter the number: 100 The number is even
C bibliotekos funkcijos
Bibliotekos funkcijos yra integruota C funkcija, kuri yra sugrupuota ir dedama į bendrą vietą, vadinamą biblioteka. Tokios funkcijos naudojamos kai kurioms konkrečioms operacijoms atlikti. Pavyzdžiui, printf yra bibliotekos funkcija, naudojama spausdinti konsolėje. Bibliotekos funkcijas kuria kompiliatorių dizaineriai. Visos C standartinės bibliotekos funkcijos yra apibrėžtos skirtinguose antraštės failuose, išsaugotuose su plėtiniu .h . Turime įtraukti šiuos antraštės failus į savo programą, kad galėtume pasinaudoti tokiuose antraštės failuose apibrėžtomis bibliotekos funkcijomis. Pavyzdžiui, norėdami naudoti bibliotekos funkcijas, tokias kaip printf/scanf, į savo programą turime įtraukti stdio.h, kuri yra antraštės failas, kuriame yra visos bibliotekos funkcijos, susijusios su standartine įvestimi / išvestimi.
Dažniausiai naudojamų antraščių failų sąrašas pateikiamas šioje lentelėje.
SN | Antraštės failas | apibūdinimas |
---|---|---|
1 | stdio.h | Tai standartinis įvesties / išvesties antraštės failas. Jame yra visos bibliotekos funkcijos, susijusios su standartine įvestimi / išvestimi. |
2 | conio.h | Tai konsolės įvesties / išvesties antraštės failas. |
3 | eilutė.h | Jame yra visos su eilutėmis susijusios bibliotekos funkcijos, tokios kaip gets (), puts (), ir kt. |
4 | stdlib.h | Šiame antraštės faile yra visos bendrosios bibliotekos funkcijos, pvz., malloc (), calloc (), exit () ir kt. |
5 | matematika.h | Šiame antraštės faile yra visos su matematinėmis operacijomis susijusios funkcijos, pvz., sqrt (), pow () ir kt. |
6 | laikas.h | Šiame antraštės faile yra visos su laiku susijusios funkcijos. |
7 | ctype.h | Šiame antraštės faile yra visos simbolių tvarkymo funkcijos. |
8 | stdarg.h | Kintamųjų argumentų funkcijos yra apibrėžtos šiame antraštės faile. |
9 | signalas.h | Visos signalų apdorojimo funkcijos yra apibrėžtos šiame antraštės faile. |
10 | setjmp.h | Šiame faile yra visos šuolio funkcijos. |
vienuolika | lokale.h | Šiame faile yra lokalės funkcijos. |
12 | errno.h | Šiame faile yra klaidų apdorojimo funkcijos. |
13 | tvirtinti.h | Šiame faile yra diagnostikos funkcijų. |
Papildoma informacija apie C funkcijas pateikiama toliau:
Yra keletas papildomos informacijos, susijusios su C funkcijomis. Kai kurie iš jų yra tokie:
Modulinis programavimas: Gebėjimas padalinti a didžiulė programa Į mažesnius, lengviau valdomus modulius yra vienas iš pagrindinių privalumų naudojant C funkcijas. Kiekvienoje funkcijoje gali būti tam tikra užduotis arba funkcijos komponentas, kuris supaprastina ir paaiškina bendrą programos struktūrą. Ši modulinė strategija pagerina pakartotinį kodo naudojimą ir palengvina priežiūrą bei derinimą.
python sumažinti
Pakartotinis kodo naudojimas: Naudodamiesi funkcijomis, galite sukurti tam tikrą algoritmą ar logikos dalį tik vieną kartą ir pakartotinai naudoti visą savo programą. Galite tiesiog iškviesti funkciją bet kuriuo metu, kai prireiks paleisti kodą, kad nereikėtų jo kopijuoti kitur. Tai ne tik pagreitina vystymąsi bet ir užtikrina nuoseklumą bei sumažina klaidų galimybę.
Inkapsuliavimas ir abstrakcija: Užslėpdamos funkcionalumo įgyvendinimo specifiką, funkcijos suteikia tam tikrą abstrakcijos lygį. Funkcijos prototipo sąsaja gali būti apibrėžta a antraštės failą , o tikrasis įgyvendinimas gali būti pateiktas kitame šaltinio faile. Kitos programos dalys gali naudoti funkciją, nes nereikia suprasti, kaip ji įdiegta viduje, nes sąsaja ir įgyvendinimas yra atskirtos.
Lengva programos priežiūra: Programą galima lengviau suprasti ir prižiūrėti, jei ji suskirstyta į mažesnes funkcijas. Galimybė priskirti konkrečią atsakomybę kiekvienai funkcijai daro kodą lengviau skaitomą ir palengvina trikčių šalinimą bei derinimą. Galite sutelkti dėmesį į reikiamą funkciją nepaveikdami kitų programos dalių, jei randama klaida arba reikalingas pakeitimas.
Patobulintas bendradarbiavimas: Funkcijos leidžia kūrėjams, dirbantiems su tuo pačiu projektu, bendradarbiauti. Programa gali būti suskirstyta į funkcijas, kad galėtų dirbti keli komandos nariai skirtingos funkcijos iškart. Kūrėjai gali sklandžiai integruoti savo darbą į funkcijas, jei sąsajos yra gerai nurodytos, o tai pagerina produktyvumą ir skatina efektyvų vystymąsi.
Perduodant parametrą: Galite siųsti argumentus arba duomenis į funkciją C, kad ji galėtų juos apdoroti. Funkcija gali atlikti veiksmus ir generuoti rezultatus naudodama šiuos įvestis. Perduodami parametrus galite padidinti funkcijų lankstumą ir pritaikomumą, o tai padidins bendrą programos universalumą.
Grąžinimo vertės: Funkcijos gali siųsti reikšmes atgal į kodą, kuris jas iškvietė, kad būtų galima perduoti funkcijos vykdymo rezultatus. Grąžintą reikšmę galite panaudoti kitose programos srityse, atlikę skaičiavimus arba manipuliuodami duomenimis funkcijoje. Grąžinamos vertės yra ypač naudingi, kai reikia apskaičiuoti rezultatą arba nustatyti sąlygą, atsižvelgiant į funkcijos išvestį.
Išvada:
Apibendrinant, funkcijos yra būtinos C programavimui, nes jos suteikia programą organizuotumas, pakartotinis naudojimas ir moduliškumas . Kūrėjai gali išvengti pakartotinio to paties kodo kūrimo, suskaidydami didžiules programas į mažesnes funkcijas, todėl kodas tampa efektyvesnis ir lengviau prižiūrimas. Bet kurioje programos vietoje galima iškviesti funkciją, suteikdama lankstumo ir pagerindama valdymo srautą.
The deklaracija, skambinti , ir apibrėžimas funkcijų yra tik keletas iš daugelio jų savybių. Kompiliatorius informuojamas funkcijos deklaracija vardas, argumentai , ir grąžinimo tipas . Galima iškviesti funkciją su arba be jos parametrus ir su arba be a grąžinti vertę . Programuotojai kuria vartotojo nustatytas funkcijas, kad pagerintų kodo skaitomumą ir optimizavimą, o C bibliotekos funkcijos, pvz. printf() ir scanf() suteikti iš anksto nustatytas galimybes.
Apskritai, funkcijos yra esminiai C programavimo elementai, teikiantys privalumus, įskaitant didesnį organizavimą, pakartotinį kodo naudojimą ir paprastą didžiulių programų stebėjimą. Funkciniai iškvietimai gali pridėti papildomų išlaidų, tačiau jų pranašumai nusveria minimalų našumą. Programuotojai gali rašyti efektyvias ir modulines C programas suprasdami ir naudodami funkcijas.