C Programming/C Reference/stddef.h
In C, one includes the header file "stddef.h", in this way:
In C++, one includes the header file "cstddef", in this way:
A macro that expands to a null pointer constant. It may be defined as ((void*)0), 0 or 0L depending on the compiler and the language.
A functional macro that is used to determine the byte offset of the indicated member field in the specified structure type.
The type size_t represents the appropriate type for representing the size of objects of memory areas, and for use in dereferencing the elements of an array. It has an implementation-dependent size; usually but not necessarily, it has a 32-bit representation on 32-bit systems and a 64-bit representation on 64-bit systems. It is unsigned.
This type has in some implementations a signed variant with name ssize_t, that is defined in the UNIX header file "unistd.h". For GNU C the type ssize_t is defined in "stddef.h" and thus resides in the same file as size_t.
The type ptrdiff_t is a type that can hold the result of subtracting two pointers which point to two items of the same object. The underlying type of ptrdiff_t varies from implementation to implementation.
A Object is maybe bigger than PTRDIFF_MAX. A subtracting of two pointers which have a bigger difference than PTRDIFF_MAX / PTRDIFF_MIN result in a undefined behavior.