Abandon NULL for (0)

Scott Amspoker scott at bbxsda.UUCP
Fri Sep 22 08:42:17 AEST 1989


In article <14718 at bfmny0.UU.NET> tneff at bfmny0.UU.NET (Tom Neff) writes:
>In article <6502 at ux.cs.man.ac.uk> ian at ux.cs.man.ac.uk (Ian Cottam) writes:
>> I propose that the integral constant expression (0) be used instead of
>> NULL.
>
>However (0) is not explicitly cast to a pointer type, as NULL may be
>presumed to be when appropriate.  For instance if I refer to, but do not
>declare or define, an external routine that accepts a single pointer as
>its argument, by saying myproc((0)), the compiler will Miranda it into a
>regular int, rather that ((void *) 0), which might have a different size
>and representation.

Good point.  Professionally, I cast everything - makes lint real happy.
At home I use 0 for a null pointer.  I test pointers with expressions
like:
       if (pointer)...			/* at home */
       if (!pointer)...

as opposed to

       if (pointer!=(char *)0)		/* at work */

Modern C compilers are quite reliable about this - but you have
to watch out with those function calls.  However, function prototyping
solves that problem.  In fact, function prototyping has saved my
butt on many occasions.  Too bad it is not yet common enough to use
professionally.

-- 
Scott Amspoker
Basis International, Albuquerque, NM
(505) 345-5232



More information about the Comp.lang.c mailing list