C Programming/Functions
Objective Edit

Lesson EditFunctions EditIn today's world we believe that Time is Money. The less time you spend in writing a program, the more efficient use of resources. Functions helps a programmer avoid rewritting code over and over, even more so than looping, and hence save time, cost, and effort. Let's say we would like to write a program that calculates the square of a number. The application that we are asked to design requires that you calculate the square of several numbers again and again. So, you will write the following code to calculate the square of the number wherever needed. int result;
result = a * a;
If you have to calculate the square of the number at 3 different places in your program, you will have to write these lines of code over and over again. int main(void)
{
...
result = a * a;
...
result = b * b;
...
result = c * c;
...
return 0;
}
Luckily, we do not need to do this, because C allows us to declare functions. A function is named a block of code that, when invoked, is executed. This is what a function definition looks like: returntype name(parameters ...) { statements ... } A C function may specify any primitive type or a int square(int n)
{
int ans = n * n;
return ans;
}
Once a function has been defined, we can now use this function wherever we would like to use it. For example: int main(void)
{
...
result = square(a);
...
result = square(b);
...
result = square(c);
...
return 0;
}
Thus, instead of writing the entire code over and over again, we can simply call the function here. Functions are the backbone of any C algorithm. All C data types can be passed to a function except an array or function (if passed they will be converted to pointers), and all may be returned. Functions can also call other functions: int multiply_together(int n1, int n2)
{
return n1 * n2;
}
int add_two_and_multiply(int n1, int n2)
{
n1 = add_two(n1);
return multiply_together(n1, add_two(n2)); /* returns (n1 + 2) * (n2 + 2) */
}
You can call a function inside a function, as illustrated above. Every C program has at least one function, that function being main(), which is the entry point of every program. 
Assignments Edit

