Write a C++ program for inline functions with default arguments to calculate simple intrest
AIM:
Write a C++ program for inline functions
with default arguments to calculate simple intrest
THEORY:
C++ provides an inline functions to reduce the
function call overhead. Inline function is a function that is expanded in line
when it is called. When the inline function is called whole code of the inline
function gets inserted or substituted at the point of inline function call.
This substitution is performed by the C++ compiler at compile time. Inline
function may increase efficiency if it is small.
The syntax for defining the function inline is:
The syntax for defining the function inline is:
inline return-type function-name(parameters)
{
// function code
}
Remember, inlining is only a request to the
compiler, not a command. Compiler can ignore the request for inlining. Compiler
may not perform inlining in such circumstances like:
1) If a function contains a loop. (for, while, do-while)
2) If a function contains static variables.
3) If a function is recursive.
4) If a function return type is other than void, and the return statement doesn’t exist in function body.
5) If a function contains switch or goto statement.
1) If a function contains a loop. (for, while, do-while)
2) If a function contains static variables.
3) If a function is recursive.
4) If a function return type is other than void, and the return statement doesn’t exist in function body.
5) If a function contains switch or goto statement.
Inline functions provide following
advantages:
1) Function call overhead doesn’t occur.
2) It also saves the overhead of push/pop variables on the stack when function is called.
3) It also saves overhead of a return call from a function.
4) When you inline a function, you may enable compiler to perform context specific optimization on the body of function. Such optimizations are not possible for normal function calls. Other optimizations can be obtained by considering the flows of calling context and the called context.
5) Inline function may be useful (if it is small) for embedded systems because inline can yield less code than the function call preamble and return.
1) Function call overhead doesn’t occur.
2) It also saves the overhead of push/pop variables on the stack when function is called.
3) It also saves overhead of a return call from a function.
4) When you inline a function, you may enable compiler to perform context specific optimization on the body of function. Such optimizations are not possible for normal function calls. Other optimizations can be obtained by considering the flows of calling context and the called context.
5) Inline function may be useful (if it is small) for embedded systems because inline can yield less code than the function call preamble and return.
Inline function disadvantages:
1) The added variables from the inlined function consumes additional registers, After in-lining function if variables number which are going to use register increases than they may create overhead on register variable resource utilization. This means that when inline function body is substituted at the point of function call, total number of variables used by the function also gets inserted. So the number of register going to be used for the variables will also get increased. So if after function inlining variable numbers increase drastically then it would surely cause an overhead on register utilization.
1) The added variables from the inlined function consumes additional registers, After in-lining function if variables number which are going to use register increases than they may create overhead on register variable resource utilization. This means that when inline function body is substituted at the point of function call, total number of variables used by the function also gets inserted. So the number of register going to be used for the variables will also get increased. So if after function inlining variable numbers increase drastically then it would surely cause an overhead on register utilization.
2) If you use too many inline functions then the
size of the binary executable file will be large, because of the duplication of
same code.
SOURCE
CODE:
#include<iostream>
using namespace std;
float it();
float ir();
inline float intrest(float p,float t=it(),float
r=ir());
inline float intrest(float p,float t,float r)
{
return
(p*t*r)/100;
}
float ir()
{
float
r;
cout<<"\n
enter value:";
cin>>r;
return
r;
}
float it()
{
float
t;
cout<<"\n
enter year:";
cin>>t;
return
t;
}
int main()
{
cout<<"simple
intrest without specific arguement:"<<intrest(1000,2,2);
cout<<"\n
simple intrest called default arguement:"<<intrest(1000);
}
Labels: oop through c++ lab
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home