@node stddef.h @section @file{stddef.h} POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stddef.h.html} Gnulib module: stddef Portability problems fixed by Gnulib: @itemize @item Some platforms fail to provide @code{unreachable}, which was added in C23: GCC 13, clang 15, AIX with xlc 12.1, Solaris with Sun C 5.15, and others. @item Some platforms fail to provide @code{max_align_t}, which was added in C11: NetBSD 8.0, Solaris 11.0, and others. @item @code{max_align_t} does not have the expected alignment on some platforms: NetBSD 8.0/x86, AIX 7.2 with xlc in 64-bit mode. @item Some old platforms fail to provide @code{wchar_t}. @item Some platforms provide a @code{NULL} macro that cannot be used in arbitrary expressions: NetBSD 5.0 @item Some platforms provide a @code{NULL} macro whose value does not have the size of a pointer: AIX 7.2 with xlc in 64-bit mode. @item When this header file is provided by TinyCC 0.9.27 on glibc or macOS systems, it does not fulfil the expectations of other system header files. @end itemize Portability problems not fixed by Gnulib: @itemize @item @cindex null pointer type Some platforms fail to provide @code{nullptr_t}, which Gnulib cannot usefully emulate: GCC 12, Clang 15, and other pre-2023 C compilers. @item Some platforms provide an @code{offsetof} macro that cannot be used in arbitrary expressions: Solaris 11.4 This problem can be worked around by parenthesizing the @code{offsetof} expression in the unlikely case you use it with @code{sizeof} or @samp{[]}. @end itemize