Macros
NUL
is used here to indicate a character value of zero, such as used to terminate character strings.
NULL
is defined in <stddef.h> (and several other headers) and represents a generic 'null pointer' value.