SlideShare a Scribd company logo
What is inline function :
Inline Function
How to make function inline:
Why to use -
PROS -
CONS -
When to use -
Key Points -
Program code-
TableofContents
Inline function and classes:
INLINE FUNCTION
o Inline function is introduced which is an optimization technique used by the compilers especially to reduce
the execution time.We will cover “what, why, when & how” of inline functions
WHAT IS INLINE FUNCTION :
¡ The inline functions are a C++ enhancement feature to increase the execution time
of a program.
¡ Functions can be instructed to compiler to make them inline so that compiler can
replace those function definition wherever those are being called.
¡ Compiler replaces the definition of inline functions at compile time instead of
referring function definition at runtime.
¡ if function is big (in term of executable instruction etc) then, compiler can ignore the
“inline” request and treat the function as normal function.
HOW TO MAKE FUNCTION INLINE:
¡ To make any function as inline, start its definitions with the keyword “inline”.
inline int add(int a, int b)
{
return (a + b);
};
WHY TO USE -
¡ In many places we create the functions for small work/functionality which contain simple
and less number of executable instruction. Imagine their calling overhead each time they
are being called by callers.
¡ When a normal function call instruction is encountered, the program stores the memory address
of the instructions immediately following the function call statement, loads the function being called
into the memory, copies argument values, jumps to the memory location of the called function, executes
the function codes, stores the return value of the function, and then jumps back to the address of the
instruction that was saved just before executing the called function. Too much run time overhead.
Cont….
WHY TO USE -
¡ The C++ inline function provides an alternative.
¡ With inline keyword, the compiler replaces the function call
statement with the function code itself (process called expansion)
and then compiles the entire code.
¡ Thus, with inline functions, the compiler does not have to jump to
another location to execute the function, and then jump back as the
code of the called function is already available to the calling program.
PROS -
1. It speeds up your program by avoiding function calling overhead.
2. It save overhead of variables push/pop on the stack, when function calling happens.
3. It save overhead of return call from a function.
4. It increases locality of reference by utilizing instruction cache.
5. By marking it as inline, you can put a function definition in a header file (i.e. it can be
included in multiple compilation unit, without the linker complaining)
CONS -
1. It increases the executable size due to code expansion.
2. C++ inlining is resolved at compile time.Which means if you change the code of the
inline function, you would need to recompile all the code using it to make sure it will be
updated
3.When used in a header, it makes your header file larger with information which users
don’t care.
4.As mentioned above it increases the executable size, which may cause thrashing in
memory. More number of page fault bringing down your program performance.
5. Sometimes not useful for example in embedded system where large executable size
is not preferred at all due to memory constraints
INLINE FUNCTION AND CLASSES:
¡ It is also possible to define the inline function inside the class. In fact, all the functions defined
inside the class are implicitly inline.Thus, all the restrictions of inline functions are also
applied here. If you need to explicitly declare inline function in the class then just declare the
function inside the class and define it outside the class using inline keyword
For example: class S
{
public:
inline int square(int s) // redundant use of inline
{
// this function is automatically inline
// function body
}
};
WHEN TO USE -
Function can be made as inline as per programmer need. Some useful recommendation
are mentioned below-
1. Use inline function when performance is needed.
2. Use inline function over macros.
3. Prefer to use inline keyword outside the class with the function
definition to hide implementation details.
KEY POINTS -
1. It’s just a suggestion not compulsion. Compiler may or may not inline the functions you marked as inline. It may also
decide to inline functions not marked as inline at compilation or linking time.
2. Inline works like a copy/paste controlled by the compiler, which is quite different from a pre-processor macro:The macro
will be forcibly inlined, will pollute all the namespaces and code, won't be easy to debug.
3.All the member function declared and defined within class are Inline by default. So no need to define explicitly.
4.Virtual methods are not supposed to be inlinable. Still, sometimes, when the compiler can know for sure the type of the
object (i.e. the object was declared and constructed inside the same function body), even a virtual function will be inlined
because the compiler knows exactly the type of the object.
5.Template methods/functions are not always inlined (their presence in an header will not make them automatically inline).
6. Most of the compiler would do in-lining for recursive functions but some compiler provides #pragmas
microsoft c++ compiler - inline_recursion(on) and once can also control
its limit with inline_depth.
In gcc, you can also pass this in from the command-line with --maxinline-
insns-recursive
PROGRAM CODE-
#include <iostream>
using namespace std;
inline int sqr(int x) output: ans is 9
{
int y;
y = x * x;
return y;
}
int main()
{
int a =3, b;
b = sqr(a);
cout <<"ans is "<<b;
return 0;
}
THANK YOU

More Related Content

PPTX
Inline functions & macros
PPTX
ML model integration with DevOps
PPTX
Enjector Kernel - Workflow Module Demo
PPTX
PPTX
Features of java
PDF
Building restful apis with laravel
PDF
Schema-First API Design
PPTX
Inline functions in c++
Inline functions & macros
ML model integration with DevOps
Enjector Kernel - Workflow Module Demo
Features of java
Building restful apis with laravel
Schema-First API Design
Inline functions in c++

What's hot (15)

PPTX
Why Functional Programming So Hard?
PPTX
VS Saturday 2019 - Xamarin.Forms 4.x
PPTX
MUnit run and wait scope
PPTX
PDF
What is new in Symfony 3,3, 3,4, 4.0, 4,1 + Flex
PPTX
Mule java part-1
PPTX
What's New in Mulesoft Anypoint 7.4
PDF
AEM - A Collection of developer friendly tools
PPTX
Ecma script
PDF
Creating Custom Solutions with FME and Python
PPTX
Mule
PDF
Laravel 5.4
PDF
Laravel and CodeIgniter: pros & cons
PPTX
How to publish Open api 3.0 with SAP PO and KaTe RESTful adapter
PDF
Rails 5 – most effective features for apps upgradation
Why Functional Programming So Hard?
VS Saturday 2019 - Xamarin.Forms 4.x
MUnit run and wait scope
What is new in Symfony 3,3, 3,4, 4.0, 4,1 + Flex
Mule java part-1
What's New in Mulesoft Anypoint 7.4
AEM - A Collection of developer friendly tools
Ecma script
Creating Custom Solutions with FME and Python
Mule
Laravel 5.4
Laravel and CodeIgniter: pros & cons
How to publish Open api 3.0 with SAP PO and KaTe RESTful adapter
Rails 5 – most effective features for apps upgradation
Ad

Similar to inline function (20)

PPTX
INLINE FUNCTION IN C++
PPTX
Inline functions
DOCX
Function Overloading,Inline Function and Recursion in C++ By Faisal Shahzad
PPTX
inline function
PPTX
Inline function
PPTX
Chapter One Function.pptx
PPT
chapterintroductiontomodularprogramming-230112092330-e3eb5a74 (1).ppt
PPT
Chapter Introduction to Modular Programming.ppt
DOCX
Inline function(oops)
PDF
C question
PPTX
Presentation 2.pptx
PPTX
Functions in c++, presentation, short and sweet presentation, and details of ...
 
PDF
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
PPTX
Mastering Python lesson 4_functions_parameters_arguments
PPTX
mobile development using node js and java
PPTX
C programming
PPTX
Functions and structure in programming c
PPTX
OOP-Module-1-Section-4-LectureNo1-5.pptx
PPTX
Guidelines to understand durable functions with .net core, c# and stateful se...
PPTX
C++ 2
INLINE FUNCTION IN C++
Inline functions
Function Overloading,Inline Function and Recursion in C++ By Faisal Shahzad
inline function
Inline function
Chapter One Function.pptx
chapterintroductiontomodularprogramming-230112092330-e3eb5a74 (1).ppt
Chapter Introduction to Modular Programming.ppt
Inline function(oops)
C question
Presentation 2.pptx
Functions in c++, presentation, short and sweet presentation, and details of ...
 
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
Mastering Python lesson 4_functions_parameters_arguments
mobile development using node js and java
C programming
Functions and structure in programming c
OOP-Module-1-Section-4-LectureNo1-5.pptx
Guidelines to understand durable functions with .net core, c# and stateful se...
C++ 2
Ad

Recently uploaded (20)

DOCX
"Project Management: Ultimate Guide to Tools, Techniques, and Strategies (2025)"
PDF
Nykaa-Strategy-Case-Fixing-Retention-UX-and-D2C-Engagement (1).pdf
PPTX
Tablets And Capsule Preformulation Of Paracetamol
PDF
COLEAD A2F approach and Theory of Change
PPT
The Effect of Human Resource Management Practice on Organizational Performanc...
PPTX
Impressionism_PostImpressionism_Presentation.pptx
PPTX
AcademyNaturalLanguageProcessing-EN-ILT-M02-Introduction.pptx
PPTX
Hydrogel Based delivery Cancer Treatment
PPTX
INTERNATIONAL LABOUR ORAGNISATION PPT ON SOCIAL SCIENCE
PPTX
Lesson-7-Gas. -Exchange_074636.pptx
PPTX
FINAL TEST 3C_OCTAVIA RAMADHANI SANTOSO-1.pptx
PPTX
Sustainable Forest Management ..SFM.pptx
DOCX
ENGLISH PROJECT FOR BINOD BIHARI MAHTO KOYLANCHAL UNIVERSITY
DOC
LSTM毕业证学历认证,利物浦大学毕业证学历认证怎么认证
PPTX
Research Process - Research Methods course
PPTX
BIOLOGY TISSUE PPT CLASS 9 PROJECT PUBLIC
PPTX
Intro to ISO 9001 2015.pptx wareness raising
PDF
Yusen Logistics Group Sustainability Report 2024.pdf
DOC
学位双硕士UTAS毕业证,墨尔本理工学院毕业证留学硕士毕业证
PDF
natwest.pdf company description and business model
"Project Management: Ultimate Guide to Tools, Techniques, and Strategies (2025)"
Nykaa-Strategy-Case-Fixing-Retention-UX-and-D2C-Engagement (1).pdf
Tablets And Capsule Preformulation Of Paracetamol
COLEAD A2F approach and Theory of Change
The Effect of Human Resource Management Practice on Organizational Performanc...
Impressionism_PostImpressionism_Presentation.pptx
AcademyNaturalLanguageProcessing-EN-ILT-M02-Introduction.pptx
Hydrogel Based delivery Cancer Treatment
INTERNATIONAL LABOUR ORAGNISATION PPT ON SOCIAL SCIENCE
Lesson-7-Gas. -Exchange_074636.pptx
FINAL TEST 3C_OCTAVIA RAMADHANI SANTOSO-1.pptx
Sustainable Forest Management ..SFM.pptx
ENGLISH PROJECT FOR BINOD BIHARI MAHTO KOYLANCHAL UNIVERSITY
LSTM毕业证学历认证,利物浦大学毕业证学历认证怎么认证
Research Process - Research Methods course
BIOLOGY TISSUE PPT CLASS 9 PROJECT PUBLIC
Intro to ISO 9001 2015.pptx wareness raising
Yusen Logistics Group Sustainability Report 2024.pdf
学位双硕士UTAS毕业证,墨尔本理工学院毕业证留学硕士毕业证
natwest.pdf company description and business model

inline function

  • 1. What is inline function : Inline Function How to make function inline: Why to use - PROS - CONS - When to use - Key Points - Program code- TableofContents Inline function and classes:
  • 2. INLINE FUNCTION o Inline function is introduced which is an optimization technique used by the compilers especially to reduce the execution time.We will cover “what, why, when & how” of inline functions
  • 3. WHAT IS INLINE FUNCTION : ¡ The inline functions are a C++ enhancement feature to increase the execution time of a program. ¡ Functions can be instructed to compiler to make them inline so that compiler can replace those function definition wherever those are being called. ¡ Compiler replaces the definition of inline functions at compile time instead of referring function definition at runtime. ¡ if function is big (in term of executable instruction etc) then, compiler can ignore the “inline” request and treat the function as normal function.
  • 4. HOW TO MAKE FUNCTION INLINE: ¡ To make any function as inline, start its definitions with the keyword “inline”. inline int add(int a, int b) { return (a + b); };
  • 5. WHY TO USE - ¡ In many places we create the functions for small work/functionality which contain simple and less number of executable instruction. Imagine their calling overhead each time they are being called by callers. ¡ When a normal function call instruction is encountered, the program stores the memory address of the instructions immediately following the function call statement, loads the function being called into the memory, copies argument values, jumps to the memory location of the called function, executes the function codes, stores the return value of the function, and then jumps back to the address of the instruction that was saved just before executing the called function. Too much run time overhead. Cont….
  • 6. WHY TO USE - ¡ The C++ inline function provides an alternative. ¡ With inline keyword, the compiler replaces the function call statement with the function code itself (process called expansion) and then compiles the entire code. ¡ Thus, with inline functions, the compiler does not have to jump to another location to execute the function, and then jump back as the code of the called function is already available to the calling program.
  • 7. PROS - 1. It speeds up your program by avoiding function calling overhead. 2. It save overhead of variables push/pop on the stack, when function calling happens. 3. It save overhead of return call from a function. 4. It increases locality of reference by utilizing instruction cache. 5. By marking it as inline, you can put a function definition in a header file (i.e. it can be included in multiple compilation unit, without the linker complaining)
  • 8. CONS - 1. It increases the executable size due to code expansion. 2. C++ inlining is resolved at compile time.Which means if you change the code of the inline function, you would need to recompile all the code using it to make sure it will be updated 3.When used in a header, it makes your header file larger with information which users don’t care. 4.As mentioned above it increases the executable size, which may cause thrashing in memory. More number of page fault bringing down your program performance. 5. Sometimes not useful for example in embedded system where large executable size is not preferred at all due to memory constraints
  • 9. INLINE FUNCTION AND CLASSES: ¡ It is also possible to define the inline function inside the class. In fact, all the functions defined inside the class are implicitly inline.Thus, all the restrictions of inline functions are also applied here. If you need to explicitly declare inline function in the class then just declare the function inside the class and define it outside the class using inline keyword For example: class S { public: inline int square(int s) // redundant use of inline { // this function is automatically inline // function body } };
  • 10. WHEN TO USE - Function can be made as inline as per programmer need. Some useful recommendation are mentioned below- 1. Use inline function when performance is needed. 2. Use inline function over macros. 3. Prefer to use inline keyword outside the class with the function definition to hide implementation details.
  • 11. KEY POINTS - 1. It’s just a suggestion not compulsion. Compiler may or may not inline the functions you marked as inline. It may also decide to inline functions not marked as inline at compilation or linking time. 2. Inline works like a copy/paste controlled by the compiler, which is quite different from a pre-processor macro:The macro will be forcibly inlined, will pollute all the namespaces and code, won't be easy to debug. 3.All the member function declared and defined within class are Inline by default. So no need to define explicitly. 4.Virtual methods are not supposed to be inlinable. Still, sometimes, when the compiler can know for sure the type of the object (i.e. the object was declared and constructed inside the same function body), even a virtual function will be inlined because the compiler knows exactly the type of the object. 5.Template methods/functions are not always inlined (their presence in an header will not make them automatically inline). 6. Most of the compiler would do in-lining for recursive functions but some compiler provides #pragmas microsoft c++ compiler - inline_recursion(on) and once can also control its limit with inline_depth. In gcc, you can also pass this in from the command-line with --maxinline- insns-recursive
  • 12. PROGRAM CODE- #include <iostream> using namespace std; inline int sqr(int x) output: ans is 9 { int y; y = x * x; return y; } int main() { int a =3, b; b = sqr(a); cout <<"ans is "<<b; return 0; }