Pessoal, para quem também tiver tido curiosidade em procurar (literalmente) a constante NULL definida na biblioteca padrão C...
Executando o seguinte comando para sistemas UNIX-like (para Windows acho que rola usando o cygwin):
find /usr/include -name stdlib.h -exec grep -nH "#define NULL\|#ifndef NULL" {} \; /usr/include/stdlib.h:114:#ifndef NULL /usr/include/stdlib.h:115:#define NULL __DARWIN_NULL
Encontrei que a constante NULL (ao menos no meu SO) está definida em função de outra constante "__DARWIN_NULL".
Por sua vez, procurando por __DARWIN_NULL, encontrei o seguinte:
find /usr/include -name *.h -exec grep -nH "#define __DARWIN_NULL\|#ifndef __DARWIN_NULL" {} \; [...] /usr/include/sys/_types.h:82:#define __DARWIN_NULL __null /usr/include/sys/_types.h:85:#define __DARWIN_NULL (0L) /usr/include/sys/_types.h:87:#define __DARWIN_NULL 0 /usr/include/sys/_types.h:91:#define __DARWIN_NULL ((void *)0)
O que aparentemente está de acordo com a documentação do GNU disponível em Appendix A C Language Facilities in the Library.
[]s
Thiago