Friday, July 29, 2016

C Basics - Function Definition and Declaration in C

Function Definition:
Function definition consists of a function header and a function body. The general form of a function definition is,

return_type function_name( parameter list ) {
   body of the function

Return Type: A function may return a value. The return_type is the data type of the value the function returns. Some functions may not return a value. In this case, the return_type is the keyword void.

Function Name: This is the actual name of the function. The function name and the parameter list together constitute the function signature or header.

Parameter List: This refers to the type, order, and number of the parameters of a function. Parameters are optional; that is, a function may contain no parameters. When a function is invoked, you pass a value to the parameter. Parameter written in function definition is called formal parameter. Parameter written in function call is called actual parameter. The values supplied in the function call are called arguments.

Function Body: The function body contains a collection of statements that define what the function does.
Example: This function takes two parameters num1 and num2 and returns sum two.

int sum(int num1, int num2) {

   int result;
   result = num1 + num2;

   return result; 

Function Declaration:
A function declaration tells the compiler about a function name and how to call the function. The actual body of the function can be defined separately.
The general form of a function declaration is,

return_type function_name( parameter list );

For the above defined function sum(), the function declaration is as follows −

int sum(int num1, int num2);

Parameter names are not important in function declaration only their type is required, so the following is also a valid declaration −

int sum(int, int);

Function declaration is required when you define a function in one source file and you call that function in another file. In such case, you should declare the function at the top of the file calling the function.

You can use either the static or the extern storage-class specifier in function declarations. Functions always have global lifetimes.

Related topics:
Functions in C   |   Calling a Function in C   |   Recursion in C   |   Variable Arguments in C   |   Command Line Arguments in C

List of topics: C Programming

No comments:

Post a Comment