Originally Posted on SeedBx
Welcome to the second part of the Gentle Introduction to C series. As said before this series aims to provide you a brief introduction to C language.
In this part we will look into the one of the basic components of C, namely functions and how using it can improve your programming experience.
Function
Function is a block of statements that performs a specific functionality. Mainly its aim is to divide a complex routine in hand to simpler subroutines which can then be later combined to perform the more complex routine.
There are basically two types of function :
- Standard-library functions
- User-defined functions
We will delve more into these types at a later part, but for now you can intuitively understand them as predefined and as the name suggests user-defined functions respectively.
Interesting Fact : C is the only programming language to have not lost its popularity even after such a long duration.
Given below are some basic components related to functions.
Function Name : It is the name/identity of the function which is used to call the function.
Parameters/Arguments : It is the list of data items (variables, pointers, references etc.) that the function take as input in its block of statements to either do computation on it or to facilitate the computation. The number of parameters can be any finite integer (possibly zero). The process of passing the parameters can be done in two ways : by value or by reference.
Function Declaration : It is an introductory statement which is used to inform the compiler of the number of the parameters and the type of each individual parameter associated with the given function name. It also specifies about the type ( int, char, float, double, void) of the return value of the function.
Function Definition : It is a sequence of statements that define the functionality of the function along with all details such as the names of parameter variables. It starts with a statement like a function declaration (except that it is now also compulsory to provide with parameter's name) and followed by curly braces which contain the function in itself.
Return Value : The return value is a data item (possibly void) that the functions returns to the caller. The value is returned using the return keyword
Example : Let us consider a function add which will
return the sum of the two parameters.
int add(int,int); ---------------------> Function Declaration
/* some code */
int add(int num1,int
num2) -------------> Function
Definition
{
int sum;
sum = num1 + num2;
return sum;
}
Note :
1. The use of function
declaration can be skipped if the function definition comes before the
statement(s) in which it is called. However it is a good practice to include
function declaration (and is a must when the calling statement(s) precedes the
function definition).
2. The return statement
is optional in case of void return type.
3. The parameters should
be separated by commas.
4. It is not
necessary to provide with parameter name in the function declaration.
So you may be wondering why will you ever use a function in the first
place. However there are following advantages which you
shouldn't overlook :
1. It improves
readability and makes the code look cleaner.
2. This saves you from
writing a block of code multiple times
Although for now you might be wondering these advantages are not at all
significant but as you will start designing bigger and complex code these
advantages of functions will save you a lot of time while debugging. Also as C
is a relatively low level programming language in comparison to C++ or python,
functions becomes a powerful tool to do low level stuff like memory management
etc.
There is still more to be said about functions but I will keep them for
different parts.
Side Note :
People also often classify functions on the basis of arguments and
return type.
1. Functions with no
arguments and no return type.
2. Functions with
arguments and no return type.
3. Functions with no
arguments and return type.
4. Functions with
arguments and a return type.
Do write in comments what other advantages you see of using functions.
Your suggestions as always are welcome.
No comments:
Post a Comment