On-line učionica

11. april 2012.

Funkcije

Filed under: C posle Pascal-a,Programiranje — jelena100janovic @ 3:27 pm

C obezbeđuje korišćenje funkcija koje su opet slične kao u većini jezika. Jedna od razlika je u tome što C smatra main() funkcijom. Takođe za razliku od PASCAL-a, C nema procedure – on koristi funkcije da servisira oba zahteva.

Podsetimo se forme funkcije:

povratnitip fn_ime(…,defparametra,…)
{lokalnepromenljive
naredbe
}

Pogledajmo primer koji pronalazi prosek dva broja:

Naredba return vraća rezultat glavnom programu.

Program ima sledeći izlaz:

void funkcije

void funkcije obezbeđuju zamenu za PASCAL-ove procedure.

Ako ne želite da vratite vrednost, koristite povratni tip void i izostavite naredbu return:

Moramo stavljati () čak i kad nemamo parametre, za razliku od PASCAL-a.

Program daje sledeći izlaz:

Funkcije i nizovi

Nizovi se mogu proslediti funkciji na sledeći način:

Ovde deklaracija float niz[] govori C-u da je niz niz decimalnih brojeva. Primetite da ne pišemo dimenziju tog niza kada je on parametar funkcije.

Višedimenzioni nizovi se mogu proslediti funkciji na sledeći način:

Ovde float mat[][5] govori C-u da je mat niz dimenzije N × 5 decimalnih brojeva. Primetite da navodimo drugu (i ostale) dimenziju niza, ali ne prvu dimenziju.

Prototipi funkcija

Pre nego što upotrebite neku funkciju, C mora znati koji tip ta funkcija vraća i koje parametre očekuje.

ANSI standard C-a je uveo novi (bolji) način da se ovo izvede od ranijih verzija C-a. (Sve nove verzije C-a nasleđuju ANSI standard.)

Važnost pisanja prototipa je dvostruka.

Čini kod strukturiranijim, pa zato i lakšim za čitanje.

Dozvoljava C kompajleru da proverava sintaksu poziva funkcija.

Kako se ovo radi zavisi od dometa funkcije. U suštini, ako je funkcija definisana pre nego što je upotrebljena (pozvana), onda možete slobodno da koristite funkciju.

Ako ne, onda morate deklarisati funkciju. Deklaracija prosto izražava tip koji funkcija vraća i tipove parametara koje koristi.

Uobičajena je (i zato dobra) praksa da se napišu prototipi svih funkcija na početku programa, iako to nije striktno neophodno.

Da biste deklarisali prototip funkcije jednostavno napišite tip koji funkcija vraća, ime funkcije i u zagradama nabrojte tipove parametara redosledom kojim se pojavljuju u definiciji funkcije.

Npr.

int strlen(char []);

Ovo govori da funkcija koja se zove strlen vraća celobrojnu vrednost i prihvata jedan string kao parametar.

Prototipi funkcija i definicije promenljivih se mogu pisati u istom redu. Ovo je bilo popularnije u periodu pre ANSI C-a, pošto se prototipi funkcija obično pišu odvojeno na početku programa. Ovo je i dalje savršeno ispravno do na reosled kojim se pojavljuju parametri u deiniciji funkcije.

Npr.

int duzina, strlen(char []);

Ovde je duzina promenljiva, a strlen funkcija kao pre.

Ostavite komentar »

Nema komentara.

RSS feed for comments on this post. TrackBack URI

Ostavite odgovor

Popunite detalje ispod ili pritisnite na ikonicu da biste se prijavili:

WordPress.com logo

Komentarišet koristeći svoj WordPress.com nalog. Odjavite se / Promeni )

Slika na Tviteru

Komentarišet koristeći svoj Twitter nalog. Odjavite se / Promeni )

Fejsbukova fotografija

Komentarišet koristeći svoj Facebook nalog. Odjavite se / Promeni )

Google+ photo

Komentarišet koristeći svoj Google+ nalog. Odjavite se / Promeni )

Povezivanje sa %s

Create a free website or blog at WordPress.com.

%d bloggers like this: