stddef.h is a standard
C header file that defines a few important
macros and
typedefs. Many other C headers files, such as
stdio.h and
stdlib.h, already include stddef.h so it isn't often included on its own. Unlike many other header files, stddef.h is guaranteed to be present even in a
freestanding implementation where there is no
C library. This is usually only the case with extremely low-level programming environments, such as for
embedded microcontrollers.
It defines these macros:
NULL
is the ubiquitous NULL pointer, which will typically be defined as 0
or ((void *)0)
offsetof
is a simple macro for determining the offset in bytes of a member variable from the beginning of a struct; the return type is of size_t.
It also defines these typedefs:
ptrdiff_t
is signed integer type that should be used for representing the difference between two pointers.
size_t
is an unsigned integer type that should be used for representing the size of objects; the sizeof
operator returns a size_t
value.
wchar_t
is a wide character type that can be used for representing character sets larger that one-byte per character.