On Sun, 20 Sep 2020, Doug McIlroy wrote:
(Of course,
that assumes NULL is 0, but I don't think I've run into any
architecture so braindead as to not have NULL=0.)
It has nothing to do with machine architecture. The C standard
says 0 coerces to the null pointer. NULL, defined in <stddef.h>,
is part of the library, not the language. I always use 0,
because NULL is a frill.
Doug
I was under the impression that there was explicitly no requirement that a
null pointer be 0, and that there was at least one weird system where that
wasn't true - that it just so happened that null points to 0 on certain
CPUs and that 0=NULL *happens* to work on most CPUs but wasn't guaranteed.
(In fact, I read that my habit of using 0 for NULL relied on a faulty
assumption!)
I mean, I've never actually used a CPU/OS/compiler where it wasn't true,
but...
-uso.