U c, možemo podijeliti veliki program u osnovne građevne blokove poznate kao funkcija. Funkcija sadrži skup programskih iskaza omeđenih {}. Funkcija se može pozvati više puta kako bi se osigurala mogućnost ponovne upotrebe i modularnost C programa. Drugim riječima, možemo reći da zbirka funkcija stvara program. Funkcija je također poznata kao postupak ili potprogram u drugim programskim jezicima.
Prednost funkcija u C
Postoje sljedeće prednosti C funkcija.
- Korištenjem funkcija možemo izbjeći prepisivanje iste logike/koda opet i opet u programu.
- C funkcije možemo pozvati bilo koji broj puta u programu i s bilo kojeg mjesta u programu.
- Lako možemo pratiti veliki C program kada je podijeljen na više funkcija.
- Ponovno korištenje je glavno postignuće C funkcija.
- Međutim, pozivanje funkcija je uvijek dodatni trošak u C programu.
Funkcijski aspekti
Postoje tri aspekta C funkcije.
S N | C aspekti funkcije | Sintaksa |
---|---|---|
1 | Deklaracija funkcije | return_type naziv_funkcije (popis argumenata); |
2 | Poziv funkcije | naziv_funkcije (popis_argumenata) |
3 | Definicija funkcije | return_type naziv_funkcije (popis argumenata) {tijelo funkcije;} |
Sintaksa kreiranja funkcije u c jeziku je dana u nastavku:
return_type function_name(data_type parameter...){ //code to be executed }
Vrste funkcija
U C programiranju postoje dvije vrste funkcija:
Povratna vrijednost
C funkcija može, ali ne mora vratiti vrijednost iz funkcije. Ako ne morate vratiti nikakvu vrijednost iz funkcije, upotrijebite void za vrstu povrata.
Pogledajmo jednostavan primjer C funkcije koja ne vraća nikakvu vrijednost iz funkcije.
Primjer bez povratne vrijednosti:
void hello(){ printf('hello c'); }
Ako želite vratiti bilo koju vrijednost iz funkcije, trebate upotrijebiti bilo koji tip podataka kao što je int, long, char itd. Vrsta povrata ovisi o vrijednosti koju funkcija vraća.
java provjera je nula
Pogledajmo jednostavan primjer C funkcije koja vraća int vrijednost iz funkcije.
Primjer s povratnom vrijednošću:
int get(){ return 10; }
U gornjem primjeru, moramo vratiti 10 kao vrijednost, tako da je vrsta povrata int. Ako želite vratiti vrijednost s pomičnim zarezom (npr. 10,2, 3,1, 54,5 itd.), trebate koristiti float kao vrstu povrata metode.
float get(){ return 10.2; }
Sada morate pozvati funkciju da dobijete vrijednost funkcije.
Različiti aspekti pozivanja funkcija
Funkcija može ili ne mora prihvatiti bilo koji argument. Može, ali i ne mora vratiti nikakvu vrijednost. Na temelju ovih činjenica, postoje četiri različita aspekta poziva funkcija.
- funkcija bez argumenata i bez povratne vrijednosti
- funkcija bez argumenata i s povratnom vrijednošću
- funkcija s argumentima i bez povratne vrijednosti
- funkcija s argumentima i povratnom vrijednošću
Primjer za funkciju bez argumenta i povratne vrijednosti
Primjer 1
#include void printName(); void main () { printf('Hello '); printName(); } void printName() { printf('Javatpoint'); }
Izlaz
Hello Javatpoint
Primjer 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); }
Izlaz
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Primjer za funkciju bez argumenta i s povratnom vrijednošću
Primjer 1
sql concat
#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; }
Izlaz
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Primjer 2: program za izračunavanje površine kvadrata
dobiti duljinu niza u c
#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; }
Izlaz
Going to calculate the area of the square Enter the length of the side in meters: 10 The area of the square: 100.000000
Primjer za funkciju s argumentom i bez povratne vrijednosti
Primjer 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); }
Izlaz
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Primjer 2: program za izračunavanje prosjeka pet brojeva.
#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); }
Izlaz
Going to calculate the average of five numbers: Enter five numbers:10 20 30 40 50 The average of given five numbers : 30.000000
Primjer za funkciju s argumentom i povratnom vrijednošću
Primjer 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; }
Izlaz
Going to calculate the sum of two numbers: Enter two numbers:10 20 The sum is : 30
Primjer 2: Program za provjeru je li broj paran ili neparan
#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; } }
Izlaz
Going to check whether a number is even or odd Enter the number: 100 The number is even
Funkcije C knjižnice
Funkcije biblioteke su ugrađene funkcije u C-u koje su grupirane i smještene na zajedničko mjesto koje se zove biblioteka. Takve se funkcije koriste za izvođenje nekih specifičnih operacija. Na primjer, printf je funkcija biblioteke koja se koristi za ispis na konzoli. Funkcije knjižnice kreiraju dizajneri prevoditelja. Sve funkcije C standardne biblioteke definirane su unutar različitih datoteka zaglavlja spremljenih s proširenjem .h . Moramo uključiti ove datoteke zaglavlja u naš program kako bismo iskoristili funkcije knjižnice definirane u takvim datotekama zaglavlja. Na primjer, za korištenje funkcija biblioteke kao što je printf/scanf moramo uključiti stdio.h u naš program koji je datoteka zaglavlja koja sadrži sve funkcije biblioteke u vezi sa standardnim ulazom/izlazom.
Popis najčešće korištenih datoteka zaglavlja dan je u sljedećoj tablici.
S N | Datoteka zaglavlja | Opis |
---|---|---|
1 | stdio.h | Ovo je standardna ulazno/izlazna datoteka zaglavlja. Sadrži sve funkcije knjižnice koje se odnose na standardni ulaz/izlaz. |
2 | konij.h | Ovo je ulazno/izlazna datoteka zaglavlja konzole. |
3 | niz.h | Sadrži sve funkcije biblioteke vezane uz nizove kao što su gets(), puts() itd. |
4 | stdlib.h | Ova datoteka zaglavlja sadrži sve opće funkcije biblioteke kao što su malloc(), calloc(), exit() itd. |
5 | matematika.h | Ova datoteka zaglavlja sadrži sve funkcije povezane s matematičkim operacijama kao što su sqrt(), pow() itd. |
6 | vrijeme.h | Ova datoteka zaglavlja sadrži sve funkcije povezane s vremenom. |
7 | ctype.h | Ova datoteka zaglavlja sadrži sve funkcije rukovanja znakovima. |
8 | stdarg.h | Funkcije varijabilnih argumenata definirane su u ovoj datoteci zaglavlja. |
9 | signal.h | Sve funkcije rukovanja signalima definirane su u ovoj datoteci zaglavlja. |
10 | setjmp.h | Ova datoteka sadrži sve funkcije skoka. |
jedanaest | lokalitet.h | Ova datoteka sadrži funkcije lokalizacije. |
12 | pogrešno.h | Ova datoteka sadrži funkcije za obradu pogrešaka. |
13 | tvrditi.h | Ova datoteka sadrži dijagnostičke funkcije. |
Dodatne pojedinosti o C funkcijama navedene su u nastavku:
Postoji nekoliko dodatnih informacija vezanih uz C funkcije. Neki od njih su sljedeći:
Modularno programiranje: Mogućnost da podijeliti a ogroman program u manje module kojima se lakše upravlja jedna je od glavnih prednosti korištenja funkcija u C-u. Svaka funkcija može sadržavati određeni posao ili komponentu funkcionalnosti, što usmjerava i pojašnjava ukupnu strukturu programa. Ova modularna strategija poboljšava ponovnu upotrebu koda i olakšava održavanje i otklanjanje pogrešaka.
odaberite iz više tablica sql
Ponovna upotreba koda: Korištenjem funkcija možete stvoriti određeni algoritam ili dio logike samo jednom i više puta ga koristiti u svom programu. Možete jednostavno pozvati funkciju kad god trebate pokrenuti kod, čime se štedite toga da ga ne morate duplicirati negdje drugdje. Ne samo to ubrzava razvoj ali također osigurava dosljednost i smanjuje mogućnost pogrešaka.
Enkapsulacija i apstrakcija: Zamagljujući specifičnosti implementacije funkcionalnosti, funkcije nude razinu apstrakcije. Sučelje prototipa funkcije može se definirati u a datoteka zaglavlja , dok se stvarna implementacija može pružiti u drugoj izvornoj datoteci. Ostali dijelovi programa mogu koristiti funkciju bez potrebe da razumiju kako je interno implementirana zbog odvajanja sučelja i implementacije.
Jednostavno održavanje programa: Program se može lakše razumjeti i održavati ako se podijeli na manje funkcije. Mogućnost dodjele određene odgovornosti svakoj funkciji čini kod čitljivijim i olakšava rješavanje problema i otklanjanje pogrešaka. Možete se usredotočiti na potrebnu funkciju bez utjecaja na druge dijelove programa ako se pronađe pogreška ili je potrebna izmjena.
Poboljšana suradnja: Funkcije omogućuju programerima koji rade na istom projektu da surađuju. Program se može podijeliti na funkcije tako da više članova tima može raditi različite funkcije odjednom. Programeri mogu glatko integrirati svoj rad u funkcije ako su sučelja dobro određena, što poboljšava produktivnost i promiče učinkovit razvoj.
Prosljeđivanje parametra: Možete poslati argumente ili podatke funkciji u C-u kako bi ih mogla obraditi. Funkcija može provoditi radnje i generirati rezultate koristeći te ulaze. Možete povećati fleksibilnost i prilagodljivost funkcija prosljeđivanjem parametara, što će povećati sveukupnu svestranost vašeg programa.
Povratne vrijednosti: Funkcije mogu poslati vrijednosti natrag kodu koji ih je pozvao, omogućujući komunikaciju rezultata izvršenja funkcije. Možete upotrijebiti vraćenu vrijednost u drugim područjima programa nakon izvođenja izračuna ili manipulacije podacima unutar funkcije. Povratne vrijednosti posebno su korisni kada trebate izračunati rezultat ili uspostaviti uvjet ovisno o izlazu funkcije.
Zaključak:
Zaključno, funkcije su ključne za C programiranje jer daju program organizacija, mogućnost ponovne upotrebe i modularnost . Programeri mogu izbjeći ponovno stvaranje istog koda razbijanjem ogromnih programa na manje funkcije, čineći kod učinkovitijim i jednostavnijim za održavanje. Bilo gdje u programu može se pozvati funkcija, pružajući fleksibilnost i poboljšavajući tijek kontrole.
The izjava, poziv , i definicija funkcija samo su neke od njihovih brojnih karakteristika. Prevodilac je obaviješten deklaracijom funkcije ime, argumenti , i vrsta povrata . Funkciju je moguće pozvati sa ili bez parametri i sa ili bez a povratna vrijednost . Programeri konstruiraju korisnički definirane funkcije kako bi poboljšali čitljivost i optimizaciju svog koda, dok C biblioteka funkcionira kao printf() i scanf() pružiti unaprijed postavljene mogućnosti.
Općenito, funkcije su ključni građevni blokovi u C programiranju, pružajući prednosti uključujući povećanu organizaciju, ponovnu upotrebu koda i jednostavno praćenje ogromnih programa. Funkcijski pozivi mogli bi dodati dodatne troškove, ali njihove prednosti nadmašuju minimalni gubitak performansi. Programeri mogu pisati učinkovite i modularne C programe razumijevanjem i korištenjem funkcija.