FAQ: Functions: Scope & Flexibility - How to Get Your Functions Inline

This community-built FAQ covers the “How to Get Your Functions Inline” exercise from the lesson “Functions: Scope & Flexibility”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Learn C++

FAQs on the exercise How to Get Your Functions Inline

There are currently no frequently asked questions associated with this exercise – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this exercise. Ask or answer a question by clicking reply (reply) below.

If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this exercise, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!
You can also find further discussion and get answers to your questions over in Language Help.

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head to Language Help and Tips and Resources. If you are wanting feedback or inspiration for a project, check out Projects.

Looking for motivation to keep learning? Join our wider discussions in Community

Learn more about how to use this guide.

Found a bug? Report it online, or post in Bug Reporting

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

Is there an explanation anywhere about why with the inline keyword the execution was slower?
Here are the times
0.02295 //without inline
0.024281 //with inline

3 Likes

Same here. There was no real difference upon adding the inline keyword.

Mine didn’t work at all. Codecademy showed that I completed the exercise and I was able to click the next button (to move on) but with inline nothing happened! Does anyone know why?

Thanks!

4 Likes

Same problem as anaya99 has. It shows that I completed the exercise and I am able to click the next button but nothing happens.

1 Like

Go back to main.cpp and hit run again

8 Likes

I got 0.02786 ms without inline, and 0.024231 ms with inline. Unlike what earlier posters got, my code actually ran faster.

What is supposed to be the reason behind why using inline functions can either increase or decrease runtime? What is the speeding up or slowing down dependent upon?

1 Like

There’s always minor differences in the times for either version (with or without inline), for me at least.
Kinda defeats the purpose of the exercise, but the idea is that sometimes using inline will make things faster and sometimes make things slower. I don’t know why as of know (there’s probably a ton of info out there on it) but for code this short and simple it doesn’t make a discernible difference. One we start making more complex stuff there will likely be a difference.

1 Like

thanks dude! :slight_smile:

I found a bit of confusion with this line here:

“Using inline advises the compiler to insert the function’s body where the function call is…”

Since we’re putting inline in the .hpp file, aren’t we supposed to say that inline advises the compiler to insert the function’s body where the function declaration is?

Or is that line still correct as those header contents are essentially inserted above main() function within the .cpp file. So technically it’s still correct that it’s within the file where the function is called?

1 Like

same thing happened to ma at first. I think it was my adblock, ublock origin blocking the inline. I turned it of and reloaded and it worked.

Hi Everyone. I am having trouble understanding how inline functions work! I searched elsewhere and one site says “C++ provides an inline functions to reduce the function call overhead”, which is the switch between when a function executes and when the CPU returns the function. However, could anyone please explain inline functions clearly? Thank you.

1 Like

Here is an explanation I found useful.
https://www.learncpp.com/cpp-tutorial/75-inline-functions/
In particular, have a look at the example of the min function both without inline and with inline.

3 Likes

Before hitting [RUN] after editing the .hpp file, switch back over to your main.cpp and then hit [RUN]. Should show your runtime now in the console

1 Like

Is not useful for small app , it will be maybe for big implementations .

‘Overhead’ refers to the amount of time it takes to set up an operation. Consider these two examples:

#include <iostream>

int main() {
  std::cout << "Hello, World!" << std::endl;
}
#include <iostream>

void hello_world() {
  std::cout << "Hello, World!" << std::endl;
}

int main() {
  hello_world();
}

The second program will run slightly slower because it takes a bit of time to call the function and then print out the string, while the first program just needs to print the string

What the inline keyword does is instructs the compiler to replace the function call in the executable with the actual code of the function. In the second example above, the main() function would have hello_world() replaced with std::cout << "Hello, World!" << std::endl; in the executable (not the actual code file, the source code stays identical)

See here for more info such as pros, cons and when to use

2 Likes

I dont know the different between inline function and function
it both insert function body code

Generally, with an inline function the body of the function is expanded in-place from where the function is being called. It is as if you have written the body of the function in that place instead of making a function call.
With a normal (not inline) function, the function call is not replaced with the function body. The program will assign values to parameters, keep track of memory locations, branch to where the function is stored and then come back to where the function call was made.

1 Like

This lesson feels like a waste of time. It’s almost totally uninformative. They want me to pay them money for this?
The combination of the seemingly unnecessarily complicated syntax of C++ and the basic lack of explanation in these lessons is very frustrating. For example in the previous lesson we had to write a #include statement for a .hpp header file… But the syntax is different than all other previous #include statements. Why doesn’t the lesson explain the difference between #include and #include “xxxxx.xxx”?
How about explaining why things like stings require a namespace prefix but things like int or bool do not.
Why is it that we are expected to know that basic concepts like strings or vectors require a namespace prefix? How are we supposed to find out what namespace should be used? ‘std’ stands for ‘standard’? seems like someone has a fuzzy concept of what ‘standard’ means. C++ is confusing compared to other languages. These lessons should endeavor to reduce the confusion.,
We are shown these confusing and seemingly inconsistent aspects of the language with no connection to anything logical.
#include ;

1 Like