In this article, you will gain deeper insight about function prototype in C programming.
Function prototype is the important feature of C programming which was borrowed from C++. Early versions of C programming did not use function prototype.
Function prototype in C is a function declaration that provides information to the compiler about the return type of the function and the number, types, and order of the parameters the called function expect to receive.
Function prototype in C is used by the compiler to ensure whether the function call matches the return type and the correct number of arguments or parameters with its data type of the called function.
In the absence of the function prototype, a coder might call function improperly without the compiler detecting errors that may lead to fatal execution-time errors that are difficult to detect.
return_type function_name( type argument1, type argument2, ...);
#include
preprocessor directive for function prototypes of standard library functions.
Let’s consider following function definition:
int area( int length, int breadth ) //function definition
{
.... //function body
}
Now, the corresponding prototype declaration of the above function is:
int area( int length, int breadth ); //function prototype
It states that function area takes two arguments of type int
and returns area of type int
.
The only difference between the function definition and its function prototype is the addition semicolon (;) at the end of prototype declaration.
But, the parameter identifier could be different in function prototype and function definition because the scope of parameter identifier in a function prototype is limited within the prototype declaration.
Actually, the compiler ignores the name of the parameter list in the function prototype. Having said that, it is good programming practice to include parameter names which increase program clarity.
[adsense1]
Please carefully observe the following prototype declaration:
int area(int length, int breadth );
int area(int x, int y );
int area(int , int );
All of the above function prototypes are same.
Please note that a function call that does not match prototype declaration is a compilation error.
The scope of the function prototype in C is determined by its position in the program. Generally, the function prototype is placed after the header file in the program. The scope of the function prototype is considered within the same block as the function call.
Another interesting feature of function prototype is argument conversion.
For example, the standard math library function sqrt
has a double
type parameter in the function prototype. However, it can be called with an integer argument and works perfectly.
x = sqrt(16);
The output of this statement is:
x = 4.000
As we talked earlier about conversion feature, the compiler converts a copy of integer value 16 to the double 16.0 before passing to sqrt
.
Note: Please follow C programming usual arithmetic conversion rule to avoid truncation error.