I dont understand what is the effect of writing "vector v" with the function . As below Code: print_vector( v ) vector v; or Code: float sum( x ) vector x; For a function defination , I have only seen and used the normal procedure like return_type function_name(input parameters_type input_parameter) what is the purpose of this extra thing given after this normal syntax. And sometimes 2 things are given not just one " vector x, y" Code: float scalar_mult( x, y ) vector x, y; { int i; float s = 0.0; for ( i = 0 ; i < NUM ; i++ ) s += ( x.p[i] * y.p[i] ); return s; } The actual code is below Code: #include <stdio.h> #define NUM 2 /* Number of input nodes */ #define LIMIT 100 /* Maximum number of inputs the system can handle */ #define SESSIONS 3000 /* Number of training sessions that we'll put the system through */ typedef struct { float p[NUM]; //Input vector } vector; vector w, test[LIMIT]; int hits[LIMIT], total; float bias = 0.5; print_vector( v ) vector v; { int i; for ( i = 0 ; i < NUM ; i++ ) printf(" %.4f ", v.p[i] ); printf("\n"); } float sum( x ) vector x; { int i; float s = 0.0; for ( i = 0 ; i < NUM ; i++ ) s += x.p[i]; return s; }