The list in a declaration is known as the formal parameters or arguments of the function.
The list in the call is known as the actual parameters.
Any changes made to the values of parameters within the body of the function have no effect on the values of variables passed as actual parameters. Their values are copied into local variable locations.
The declaration of a function which is going to require parameters (sometimes called arguments) has to list those parameters in the parentheses which follow the function name. Parameter names listed after their associated types is very similar to variable declarations, except that individual parameters are separated by commas not semi-colons. Note also that a separate type specifier must be given for each parameter name.
Functions without arguments must be declared with an empty argument list, i.e. with empty parentheses following the function name.
int give_three() { return 3; }
void out_one(int i) { printf("%d\n",i); }
float make_real(int i, int j, float r) { return (float)(i+j) + r; }