• R
    restore type of NULL to void * except when used in C++ programs · c8a9c221
    Rich Felker 提交于
    unfortunately this eliminates the ability of the compiler to diagnose
    some dangerous/incorrect usage, but POSIX requires (as an extension to
    the C language, i.e. CX shaded) that NULL have type void *. plain C
    allows it to be defined as any null pointer constant.
    
    the definition 0L is preserved for C++ rather than reverting to plain
    0 to avoid dangerous behavior in non-conforming programs which use
    NULL as a variadic sentinel. (it's impossible to use (void *)0 for C++
    since C++ lacks the proper implicit pointer conversions, and other
    popular alternatives like the GCC __null extension seem non-conforming
    to the standard's requirements.)
    c8a9c221
stdlib.h 4.6 KB