Functions - C Programming
What is a Function? A function is combined of a block of code that can be called or used anywhere in the program by calling the name. ...
Function arguments. Functions are able to accept input parameters in the form of variables. ...
Function return values
2. Definition
A function is a block of code that
performs a particular task.
Some situations when we need to write
a particular block of code for more than
once in our program: may lead to bugs
and irritation for the programmer.
C language provides an approach in
which you need to declare and define a
group of statements once and that can
be called and used whenever required.
Saves both time and space.
3. Example:
Suppose, you have to check 3
numbers (781, 883 and 531) whether
it is prime number or not.
Without using function, you need to
write the prime number logic 3 times.
So, there is repetition of code.
But if you use functions, you need to
write the logic only once and you can
reuse it several times.
4. Advantage of functions in C
1) Code Reusability
By creating functions in C, you can
call it many times.
So we don't need to write the same
code again and again.
2) Code optimization
It makes the code optimized, we don't
need to write much code.
6. Types of Functions
There are two types of functions in C
programming:
Library Functions: are the functions
which are declared in the C header files
such as scanf(), printf(), gets(), puts(),
ceil(), floor() etc. You just need to include
appropriate header files to use these
functions.
User-defined functions: are the
functions which are created by the C
programmer, so that he/she can use it
many times. It reduces complexity of a
big program and optimizes the code.
8. Return Type − A function may return a value.
The return_type is the data type of the value the
function returns. Some functions perform the
desired operations without returning 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.
Parameters − A parameter is like a placeholder.
When a function is invoked, you pass a value to
the parameter. This value is referred to as actual
parameter or argument. The parameter list refers
to the type, order, and number of the parameters
of a function. Parameters are optional; that is, a
function may contain no parameters.
Function Body − The function body contains a
collection of statements that define what the
function does.
9. Example
Given below is the source code for a function
called max(). This function takes two parameters
num1 and num2 and returns the maximum value
between the two −
/* function returning the max between two numbers */
int max(int num1, int num2)
{
/* local variable declaration */
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
10. Return Value
A C function may or may not return a
value from the function. If you don't
have to return any value from the
function, use void for the return type.
Example without return value:
11. If you want to return any value from
the function, you need to use any
data type such as int, long, char etc.
The return type depends on the
value to be returned from the
function.
Example with return value:
In the above example, we have to
return 10 as a value, so the return
12. If you want to return floating-point
value (e.g. 10.2, 3.1, 54.5 etc), you
need to use float as the return type of
the method.
13. Parameters in C Function
A c function may have 0 or more
parameters. You can have any type of
parameter in C program such as int,
float, char etc. The parameters are
also known as formal arguments.
Example of a function that has 0
parameter:
14. Example of a function that has 1
parameter:
Example of a function that has 2
parameters:
15. Calling a function in C
While creating a C function, you give a definition
of what the function has to do. To use a function,
you will have to call that function to perform the
defined task.
When a program calls a function, the program
control is transferred to the called function. A
called function performs a defined task and when
its return statement is executed or when its
function-ending closing brace is reached, it
returns the program control back to the main
program.
To call a function, you simply need to pass the
required parameters along with the function
name, and if the function returns a value, then
you can store the returned value.
16. Syntax:
1) variable: The variable is not mandatory. If
function return type is void, you must not provide
the variable because void functions doesn't
return any value.
2) function_name: The function_name is name of
the function to be called.
3) arguments: You need to provide arguments
while calling the C function. It is also known
as actual arguments.
20. Call by value and call by
reference in C
There are two ways to pass value or data to
function in C language: call by
value and call by reference.
Original value is not modified in call by
value but it is modified in call by reference.
21. Call by value in C
In call by value, original value is not
modified.
In call by value, value being passed to
the function is locally stored by the
function parameter in stack memory
location. If you change the value of
function parameter, it is changed for
the current function only. It will not
change the value of variable inside the
caller method such as main().
23. Call by reference in C
In call by reference, original value is
modified because we pass reference
(address).
Here, address of the value is passed
in the function, so actual and formal
arguments shares the same address
space. Hence, value changed inside
the function, is reflected inside as well
as outside the function.
26. Recursion in C
When function is called within the
same function, it is known
as recursion in C. The function which
calls the same function, is known
as recursive function.
Syntax:
27. Rules for Recursive function
Only the user-defined function can be
involved in recursion.Library functions cannot
be involved in recursion because their source
code cannot be viewed.
A recursive function saves return address
with the intention to return at proper location
when return to a calling function is made.
To stop the recursive function,it is necessary
to base the recursion on test condition,and
proper terminating statement such as exit() or
return must be written using the if()
statement.
The user-defined function main() can be
invoked recursively.
28. Advantages of Recursion
Although most problems can be
solveed without recursion,but in some
situations,it is must to use
recursion.For eg, a program to display
a list of all files of the system cannot
be solved without recursion.
Using recursion,the length of a
program can be reduced.
29. Disadvantages of Recursion
Requires extra storage space.For
every recursive call,separate memory
is allocated to variables with the same
name.
If the programmer forgets to specify
the exit condition in the recursive
function,the program will execute out
of memory.
Not efficient in execution speed and
time.
30. Example
#include<stdio.h>
#include<conio.h>
int factorial (int n)
{
if (n == 1)
return 1; /*Terminating condition*/
return (n * factorial (n -1));
}
void main(){
int fact=0;
clrscr();
fact=factorial(5);
printf("n factorial of 5 is %d",fact);
getch();
}