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 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 (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 ' (or or ) > > 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