Normally the functions are coded as subroutines which are called every time you call that function.
Each time you make a call to a function there is an overhead of putting all the variables into stack, defining the return location, passing the parameter and they are all termed as function overhead.
Inline eliminates the time overhead when a function is called by forcing the compiler to hard code the function content in each position that it is called.
This is most beneficial for functions that are called only once, for example initialization functions for the microcontroller,or in functions that speed is important.
When you use inline for functions which are called many times you get faster execution speed but you increase the code size because you have the same code replicated many times.
Normally the compiler decides if it will use inline in each function or your code but you can use inline directive to force this for a specific function.
Alex