Que: What is Function? Explain it in detail.
A function is a block of statements that performs a specific task.
Suppose you are building an application in C language and in one of your program, you need to perform the same task more than once. In such a case, you have two options –
a) Use the same set of statements every time you want to perform the task
b) Create a function to perform that task, and just call it every time you need to perform that task.
Using option (b) is a good practice and a good programmer always uses functions while writing codes in C.
Types of functions
1) Predefined standard library functions – such as puts()
, gets()
, printf()
, scanf()
etc – These are the functions which already have a definition in header files (.h files like stdio.h
), so we just call them whenever there is a need to use them.
2) User Defined functions – The functions that we create in a program are known as user-defined functions.
Why we need functions in C
Functions are used because of following reasons –
a) To improve the readability of code.
b) Improves the reusability of the code, same function can be used in any program rather than writing the same code from scratch.
c) Debugging of the code would be easier if you use functions, as errors are easy to be traced.
d) Reduces the size of the code, duplicate set of statements are replaced by function calls
The syntax of a function
return_type function_name (argument list)
{
Set of statements – Block of code
}
return_type: Return type can be of any data type such as int, double, char, void, short etc. Don’t worry you will understand these terms better once you go through the examples below.
function_name: It can be anything, however it is advised to have a meaningful name for the functions so that it would be easy to understand the purpose of function just by seeing it’s name.
argument list: Argument list contains variables names along with their data types. These arguments are kind of inputs for the function. For example – A function which is used to add two integer variables, will be having two integer argument.
Block of code: Set of C statements, which will be executed whenever a call will be made to the function.
----------------------------- ****************-----------------*********************------------------------
Lets take an example – Suppose you want to create a function to add two integer variables.
Let’s split the problem so that it would be easy to understand –
The function will add the two numbers so it should have some meaningful name like sum, addition, etc. For example, let's take the name addition for this function.
return_type addition(argument list)
This function addition adds two integer variables, which means I need two integer variable as input, lets provide two integer parameters in the function signature. The function signature would be –
return_type addition(int num1, int num2)
The result of the sum of two integers would be integer only. Hence function should return an integer value – I got my return type – It would be integer –
int addition(int num1, int num2);
Now you can implement the logic in C program like this:
Example1: Creating a user-defined function addition()
#include <stdio.h>
int main()
{
int var1, var2, result;
printf("\nEnter number 1: ");
scanf("%d",&var1);
printf("Enter number 2: ");
scanf("%d",&var2);
result = addition(var1, var2);
printf ("\nOutput: %d\n", result);
return 0;
}
int addition(var1, var2)
{
int sum;
sum = var1+var2;
return sum;
}
Output:
Example2: Creating a void user defined function that doesn’t return anything
#include <stdio.h>
/* function return type is void and it doesn't have parameters*/
void introduction()
{
printf("Hi\n");
printf("My name is DDZALA\n");
printf("How are you?");
}
int main()
{
introduction();
return 0;
}
Output:
Few Points to Note regarding functions in C:1) main()
in C program is also a function.2) Each C program must have at least one function, which is main().3) There is no limit on number of functions; A C program can have any number of functions.4) A function can call itself and it is known as “Recursion“.
C Functions Terminologies that you must remember
return type: Data type of returned value. It can be void also, in such case function doesn’t return any value.
Note: for example, if function return type is char, then function should return a value of char type and while calling this function the main() function should have a variable of char data type to store the returned value.