So far we have learnt about the simplest use of functions in C. In serious C programming functions are not used in that way. We have to make them flexible so that we can customize the results as per our requirements. To make generic function we have to pass some values to them. These values are also called parameters or arguments. Based on these parameter our function should return the value to the calling functions.
To make things a bit clear, we want to make such functions which can communicate to its calling function. And it should return the results as per the customization.
Till now we have used the functions like printf() and scanf() in which unknowingly we have passed some arguments like variable names to print it on the screen. We have to obtain similar results in our function. So today I will tell you about passing the values to the functions.
Passing Values to Functions
Lets understand this concept through a program.
printf("Enter two values to multiply themn");
printf("Answer is %d",mul);
int multi(int a,int b)
1. In the statement above main() function I have declared the function multi() by writing the instruction int multi(int , int);
int: It is return type. It means which type of value the function should return to the calling function. In this function I have declared that it will return integer value.
multi: It is the name of the function. You can give any name to this function (valid identifier).
(int,int): These are the number of arguments that I will take from the calling functions. I have declared the data type of two arguments as integer. Here I am taking only two arguments, you can take any number of arguments.
2. It is compulsory to declare the function before using it. So that compiler should understand that we will define some custom functions in it.
3. In the first three statements of main() function I have declared some variables and taken some values in it from the user.
4. Now I have passed two parameters or arguments to the my function multi() with the statement mul=multi(x, y);
Here, multi is the name of the function, (x, y) is the arguments that I am passing to the multi() function. These should be integers because as I have declared in the definition of multi() function that I will receive two integer values in it. mul is the variable which will store the value returned by multi() function.
5. Now the control goes to multi() function and the values of variables x and y will automatically be copied in the a and b variables.
6. Now the multiplication takes place inside the multi() function and the result will be stored in ans integer variable.
7. In the last statement I am returning the value stored in ans variable to the calling function i.e. main(). It is done by using the statement return(ans);. Here return is a keyword that returns a single value. It can be also written as return ans.
8. After returning the value the control will again come back to main(). You must remember that as the return statement is encountered the control immediately come back to calling function.
9. Now in last I am printing the answer using printf() function.
I would recommend you to go through the above at least twice to make your basic concepts clear. It is very necessary to understand this concept before proceeding to the further tutorials. If you are finding difficulty in understanding anything then you can ask your question by commenting below.