Programiranje u C-u

  

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.


©Copyright B Brown. 1984-1998. All rights reserved.