logo

C funkcije

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.

    Deklaracija funkcijeFunkcija mora biti deklarirana globalno u C programu kako bi kompajleru rekla ime funkcije, parametre funkcije i vrstu povrata.
    Poziv funkcijeFunkciju je moguće pozvati s bilo kojeg mjesta u programu. Popis parametara ne smije se razlikovati u pozivanju funkcije i deklaraciji funkcije. Moramo proslijediti isti broj funkcija koliko je deklarirano u deklaraciji funkcije.Definicija funkcijeSadrži stvarne naredbe koje treba izvršiti. To je najvažniji aspekt do kojeg dolazi kontrola kada se funkcija pozove. Ovdje moramo primijetiti da funkcija može vratiti samo jednu vrijednost.
S NC aspekti funkcijeSintaksa
1Deklaracija funkcijereturn_type naziv_funkcije (popis argumenata);
2Poziv funkcijenaziv_funkcije (popis_argumenata)
3Definicija funkcijereturn_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:

    Funkcije knjižnice:su funkcije koje su deklarirane u C datotekama zaglavlja kao što su scanf(), printf(), gets(), puts(), ceil(), floor() itd.Korisnički definirane funkcije:su funkcije koje kreira C programer, tako da ih on/ona može koristiti više puta. Smanjuje složenost velikog programa i optimizira kod.
C 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 NDatoteka zaglavljaOpis
1stdio.hOvo je standardna ulazno/izlazna datoteka zaglavlja. Sadrži sve funkcije knjižnice koje se odnose na standardni ulaz/izlaz.
2konij.hOvo je ulazno/izlazna datoteka zaglavlja konzole.
3niz.hSadrži sve funkcije biblioteke vezane uz nizove kao što su gets(), puts() itd.
4stdlib.hOva datoteka zaglavlja sadrži sve opće funkcije biblioteke kao što su malloc(), calloc(), exit() itd.
5matematika.hOva datoteka zaglavlja sadrži sve funkcije povezane s matematičkim operacijama kao što su sqrt(), pow() itd.
6vrijeme.hOva datoteka zaglavlja sadrži sve funkcije povezane s vremenom.
7ctype.hOva datoteka zaglavlja sadrži sve funkcije rukovanja znakovima.
8stdarg.hFunkcije varijabilnih argumenata definirane su u ovoj datoteci zaglavlja.
9signal.hSve funkcije rukovanja signalima definirane su u ovoj datoteci zaglavlja.
10setjmp.hOva datoteka sadrži sve funkcije skoka.
jedanaestlokalitet.hOva datoteka sadrži funkcije lokalizacije.
12pogrešno.hOva datoteka sadrži funkcije za obradu pogrešaka.
13tvrditi.hOva 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.