The behavior of most of these points are dependent on the implementation of the C library, and are not defined by GCC itself.
NULLexpands (C90 7.1.6, C99 7.17, C11 7.19).
NULL expands to
((void *)0). GCC does not provide the other headers which define
NULL and some library implementations may use other definitions in those headers.