Difference between __always_inline and inline
There is a nice explanation of using inline instruction on another question Could anyone explain me if there is any difference using inline and __always_inline on a header file? And, when I would prefer __always_inline over inline or vice-versa? Always inline function attribute indicates that a function must be inlined. The compiler attempts to inline the function, regardless of the characteristics of the function. However with inline attributes the compiler does not inline a function if doing so causes problems. For example, a recursive function is inlined into itself only once. __forceinline