12.07.2015 Views

Programski jezik C - Pmf

Programski jezik C - Pmf

Programski jezik C - Pmf

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

126 POGLAVLJE 7. FUNKCIJEmenata znači samo da nije u stanju provjeriti je li poziv funkcije korektan ilinije. Ukoliko nije to će biti otkriveno tek prilikom izvršavanja programa. Zakorektan poziv potrebno je da se stvarni i formalni argumenti slažu u brojui tipu (preciznije u sljedećoj sekciji).U starijim programima moguće je naći deklaraciju funkcije tipadouble f();Takva deklaracija informira prevodilac o tipu funkcije (double), ali ne i o argumentima.Prevodilac ponovo ne radi nikakve pretpostavke o broju i tipu argumenta. Takve deklaracijetreba izbjegavati.Spomenimo na ovom mjestu još i to da u C++ gornja deklaracija značidouble f(void);U C++ sve funkcije moraju imati prototip.Napomena. Mogućnost pozivanja funkcija koje nisu prethodno deklarirane(prototipom ili definicijom) te funkcija s nepotpunim deklaracijamadozvoljeno je jedino zbog kompatibilnosti sa starijim programima pisanim utradicionalnom C-u. U svim novim programima imperativ je koristiti prototipove.7.3 Prijenos argumenataArgumenti deklarirani u definiciji funkcije nazivaju se formalni argumenti.Izrazi koji se pri pozivu funkcije nalaze na mjestima formalnih argumenatanazivaju se stvarni argumenti.Prilikom poziva funkcije stvarni argumenti se izračunavaju (ako su izrazi)i kopiraju u formalne argumente. Funkcija prima kopije stvarnih argumenatašto znači da ne može izmijeniti stvarne argumente. Sljedeći primjer ilustriranačin prijenosa argumenata.#include void f(int x) {x+=1;printf("\nUnutar funkcije x=%d",x);return;}int main(void){int x=5;printf("\nIzvan funkcije x=%d",x);f(x);printf("\nNakon poziva funkcije x=%d",x);

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!