A function is declared globally above the main function, or within the main function. You can also declare a function inside another function in C++. In this article, you will learn to declare, define and call a local function.
Local Function Declaration
Like every other function, a local function must be declared within the body of another function. You must declare the return type, number of parameters and their type.
For example,
void account() { int total; int bill1, bill2; int add_bills(int , int ); //Initialization of variables bill1 = 2000; bill2 = 5000; total = 0; //Compute total bill amount total = add_bills( bill, bill2); //Print results cout << "Total Amount =" << "" << total << endl; } //Definition of function add_bills() int add_bills( int bill1, int bill2) { return(bill1 + bill2); }
The function add_bills() is a local function with proper declaration, definition and function call. The function add_bills() adds the bill1 and bill2 and return their sum.
You can add any number of local functions in your program as long as they do not violate the rules of C++ functions.
Recursive Functions
The recursive function is a special case of local function where a function calls itself several times until the programming problem is solved.
See the following figure for the general structure of a recursive function.
The function factorial calls itself recursively because each call to factorial will also call itself until the value of n becomes 0. The value of n is decreasing with each iteration.
Example Program:
/*Program to compute Nth factorial */ #include <cstdlib> #include <iostream> using namespace std; int fact (int n) { unsigned int f; if ((n == 0) || (n == 1)) return (n); else /* Compute factorial by Recursive calls */ f = n * fact (n - 1); return (f); } main () { int i, n; /* Reading the number */ cout << "Enter the Number :"; cin >> n; /* Printing results */ cout << "Factorial of Number" << n <<" is " << fact (n) << endl; system ("PAUSE"); return 0; }
Output:
Enter the Number: 5 Factorial of Number 5 is 120