A function is a sub - program which contains block of statements which is required to be called many times in a program. The function has got three states, namely,
- Function Prototype
- Function Definition
- Function Call
- Prototype declaration :
A function prototype determines how the function should be. It
is used only by the compiler.
The general format of declaring prototype for a function is,
[Return-Type] [Function-Name]([Arguments]);
|
A function prototype declaration has 3 major parts. They are,
- Function name
- Argument list
- Return type
The [Function-Name] is a name given to a function by the user.
It usually determine the type of task, the function is going to
perform when it is called.
The [Arguments] consist of list of arguments which contains the
arguments to be passed to the function, when it is being called.
The function uses it to perform a specific task. It is not compulsory
to include arguments in argument list.
The [Return-Type] determines the type of value should a function
to return.
- Defining a function what to do :
The function definition contains a block of the code, which defines
the task to be performed by that function.
The general format for defining a function is,
[Return-Type] [Function-Name]([Arguments])
{
[Statements];
return([Return-Value]);
}
|
Function definition takes the value passed to it by the caller
function and performs the tasks given in the [statements]. The return
statement will return the result to the caller function.
- Calling a function :
To perform the defined task, the function must be called and it
can be called anywhere. Any functions can be called within another
functions also.
The general format of Function call is,
[Variable-Name] = [Function-Name]([Arguments]);
|
We can call a function anywhere in the program. When we want to
call a function in the program, we first determine type of value,
the function will return and the number of arguments, which the
function can take and specify that, in the function call.
If a function has no arguments to pass, then void must be specified
as argument, which means, the function without any arguments. In
the same way, the return type may also contain void.
Now, Let us see a program, which lets the user to give input two values
and passes these values to the function add, which we will assign
the task of adding those two values. The function add finally gives
the added value as return value, which is printed on the screen,
as an output.
#include <stdio.h>
int add(int,int); /* Prototype. */
void main(void)
{
int a,b,sum;
printf("Enter two numbers : ");
scanf("%d%d",&a,&b);
sum = add(a,b); /* Function call */
printf("%d",sum);
}
int add(int x, int y) /* Function definition */
{
z = x + y;
return z;
}
|
Functions do play the basic fundamental role in C. In C for printing
the values on the screen and reading values from keyboard, there
are two statements, printf, and scanf. They are all really functions!,
not statements. Even the main() is a function!!!... C looks for
and detects function main() while starting executing a program.
It then, goes on executing the rest of the code, line by line. Whenever
it sees function call, program execution jumps to that function
definition and comes back with any return value and continues the
execution.
The aim of function is to give modularity in the programs. Very
large, very complex programs can be easily written, if we divide
them into smaller functions.
Do you know?... The so far used statements printf() and scanf()
are also functions!!!...