/* A null pointer constant. */
#if defined (_STDDEF_H) || defined (__need_NULL)
#undef NULL /* in case <stdio.h> has defined it. */
#define NULL ((void *)0)
#endif /* NULL not defined and <stddef.h> or need NULL. */
#undef __need_NULLNULL到底是什么
原文:http://blog.csdn.net/g__hk/article/details/42924473