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.