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;
}