[TUHS] reviving a bit of WWB

Clem Cole clemc at ccc.com
Mon Sep 21 09:53:02 AEST 2020


Norman NULL has to be defined and I said that/showed it.   The standard
says where.  I was not trying to compile NULL without a definition which I
agree it not legal.  If that is what Doug was implying I missed understood
him but I note NULL was introduced in Typesetter C /V7 where those compiler
s set it to 0 in studio but the ANSI/ISO moved it.

On Sun, Sep 20, 2020 at 7:03 PM Norman Wilson <norman at oclsc.org> wrote:

> Doug McIlroy:
>
>
>
>   To put it more strongly. this is not a legal C source file.
>
>           char *s = NULL;
>
>   But this is.
>
>           char *s = 0;
>
>
>
> Clem Cole:
>
>
>
>    67)The macro NULL is defined in <stddef.h> (and other headers) as a null
>
>    pointer constant; see 7.19.
>
>
>
> ====
>
>
>
> $ cat null.c
>
> char *s = NULL;
>
> $ cat zero.c
>
> char *s = 0;
>
> $
>
>
>
> zero.c is a legal C program.  null.c is not.  Create
>
> files exactly as shown and compile them if you don't
>
> believe me.
>
>
>
> Prepend `#include <stddef.h>' (or <stdlib.h> or <stdio.h>)
>
> to null.c and it becomes legal, but I think that's Doug's
>
> point: you need an include file.
>
>
>
> Personally I prefer to use NULL instead of 0 when spelling
>
> out a null pointer, because I think it's clearer:
>
>         if ((buf = malloc(SIZE)) == NULL)
>
>                 error("dammit andrew");
>
> though I am willing to omit it when there's no confusion
>
> about = vs ==:
>
>         if (*p)
>
>                 dammit(*p, "andrew");
>
>
>
> But that's just a question of style, and Doug's is fine too.
>
>
>
> The language does not require the compiler to pre-define
>
> NULL or to recognize it as a keyword; you have to include
>
> an appropriate standard header file.
>
>
>
> Norman Wilson
>
> Toronto ON (not 0N nor NULLN)
>
> --
Sent from a handheld expect more typos than usual
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20200920/b58041fd/attachment.htm>


More information about the TUHS mailing list