what “inline __attribute__((always_inline))” means in the function?
37,913
Solution 1
The often referenced gcc
documentation for always_inline
is incomplete.
always_inline
attribute makes gcc
compiler:
- Ignore
-fno-inline
(this is what the documentation says). - Ignore the inlining limits hence inlining the function regardless. It also inlines functions with
alloca
calls, whichinline
keyword never does. - Not produce an external definition of a function with external linkage if marked with
always_inline
.
The source of the above information is gcc source code, and, hence, is subject to change with no warning.
An interesting bechmark: always_inline
performance.
Solution 2
It forces the compiler to inline the function even if optimizations are disabled. Check this documentation for more information.
Related videos on Youtube

Author by
developer
Updated on July 09, 2022Comments
-
developer 11 months
I have found the following function definition :
static inline __attribute__((always_inline)) int fn(const char *s) { return (!s || (*s == '\0')); }
And I want to know the meaning of
inline __attribute__((always_inline))
? -
kkkobelief24 almost 2 yearsicc also apply it now