Branch
Hash :
7b089321
Author :
Date :
2025-01-01T09:24:36
maint: run 'make update-copyright'
@c Documentation of gnulib module 'inline'.
@c Copyright (C) 2019--2025 Free Software Foundation, Inc.
@c Permission is granted to copy, distribute and/or modify this document
@c under the terms of the GNU Free Documentation License, Version 1.3 or
@c any later version published by the Free Software Foundation; with no
@c Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
@c copy of the license is at <https://www.gnu.org/licenses/fdl-1.3.en.html>.
@node static inline
@section Static inline functions
@cindex static inline
@cindex inline
In order to mark functions as @code{static inline} in @code{.c} files,
the only prerequisite you need is an @code{AC_REQUIRE([AC_C_INLINE])}.
No Gnulib module is needed.
@mindex inline
When marking functions as @code{static inline} in @code{.h} files,
on the other hand,
it is useful to avoid the following problem:
When gcc or clang is not optimizing, it generates the same object code
for every @code{static inline} function
that is actually used in the current compilation unit,
thus bloating the size of the resulting binary.
(Code of @code{static inline} functions
that are unused in the current compilation unit gets dropped;
that is not an issue.)
To avoid this problem, use the Gnulib module @samp{inline}
and make the @code{static inline} function definition conditional
on the value of the C macro @code{HAVE_INLINE}.