Next: stdint.h, Previous: stdckdint.h, Up: ISO C and POSIX Header File Substitutes [Contents][Index]
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stddef.h.html
Gnulib module: stddef
Portability problems fixed by Gnulib:
unreachable
, which was added in C23:
GCC 13, clang 15, AIX with xlc 12.1, Solaris with Sun C 5.15, and others.
max_align_t
, which was added in C11:
NetBSD 8.0, Solaris 11.0, and others.
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.
NULL
macro that cannot be used in arbitrary
expressions:
NetBSD 5.0
NULL
macro whose value does not have the size
of a pointer:
AIX 7.2 with xlc in 64-bit mode.
Portability problems not fixed by Gnulib:
nullptr_t
,
which Gnulib cannot usefully emulate:
GCC 12, Clang 15, and other pre-2023 C compilers.
nullptr_t
even when <stddef.h>
is
not included:
GCC 14.0.1 20240411 (Red Hat 14.0.1-0).
offsetof
macro that cannot be used in
arbitrary expressions:
Solaris 11.4
This problem can be worked around by parenthesizing the
offsetof
expression in the unlikely case you use it with
sizeof
or ‘[]’.