PROTOTIPOVI FUNKCIJA
Prototipovi funkcija su u C-u predstavljeni kao
sredstvo koje omogućava provjeru tipa podataka i parametara za funkcijske
pozive. Zato što su C programi općenito podijeljeni u broj različitih kodova
koji se zasebno prevode, a tada povezuju da bi se stvorio izvršni program,
moguće je da se pojave greške.
Pogledajmo slijedeći primjer.
/* izvršni program add.c */ void add_up( int numbers[20] ) { .... } /* izvršni program mainline.c */ static float values[] = { 10.2, 32.1, 0.006, 31.08 }; main() { float result; ... result = add_up( values ); }Kako se ova dva izvršna programa prevode zasebno, prevodioc generira ispravni kod na temelju onog što je napisao programer. Kada prevodi mainline.c, prevodioc pretpostavlja da funkcija add_up prima niz float varijabli i vraća float. Kada se dva dijela povežu i startaju kao cjelina, program zasigurno neće raditi kao što je bilo namjeravano.
Da se osiguraju sredstva protiv ovakvih konflikta, ANSI C ima prototipove funkcija. Isto kao što tipovi podataka moraju biti deklarirani, tako se deklariraju i funkcije. Prototip funkcije u primjeru je,
/* itvršni program mainline.c */ void add_up( int numbers[20] );ZAPAMTITE da prototip funkcije završava točka-zarezom; tako možemo vidjeti da je to deklaracija funkcijskog tipa, a ne kod funkcije. Ako bi ponovno preveli mainline.c, greške bi generirao poziv u glavnom programu koji referencira add_up().
Općenito, kada razvijamo veliki program, posebna
datoteka bi se koristila koja bi sadržavala sve prototipove funkcija. Ovakva
datoteka se može uključiti pomoću prevodioca da osigura provjeru parametara
i tipova.