Although the C99 standard specifies many features, Gnulib code is conservative about using them, partly because Gnulib predates the widespread adoption of C99, and partly because many C99 features are not well-supported in practice. C99 features that are reasonably portable nowadays include:
long long int.
<stdbool.h>, assuming the
stdboolmodule is used. See stdbool.h.
<stdint.h>, assuming the
stdintmodule is used. See stdint.h.
__func__, assuming the
funcmodule is used. See func.
AC_REQUIRE([AC_C_RESTRICT])is used. This qualifier is sometimes implemented via a macro, so C++ code that uses Gnulib should avoid using
restrictas an identifier.