Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!seismo!rochester!cornell!uw-beaver!mit-eddie!genrad!panda!teddy!jpn
From: jpn@teddy.UUCP (John P. Nelson)
Newsgroups: comp.lang.c
Subject: Re: Writing readable code
Message-ID: <4170@teddy.UUCP>
Date: Mon, 6-Jul-87 17:34:26 EDT
Article-I.D.: teddy.4170
Posted: Mon Jul  6 17:34:26 1987
Date-Received: Tue, 7-Jul-87 07:28:41 EDT
References: <1158@copper.TEK.COM> <6858@auspyr.UUCP>
Reply-To: jpn@teddy.UUCP (John P. Nelson)
Organization: GenRad, Inc., Concord, Mass.
Lines: 15

>Microsoft C (if it really requires NULL to be 0L) is broken by all
>standards that C compilers have ever been designed to.  K&R explicitly
>defined 0 comparisons to pointers to be the rule and no one since has
>come up with any convincing arguments to the contrary.

I don't know, I think this is defensible.  The reason that Microsoft did
this was so that UNIXisms like:

   execl(a, b, c, NULL);

Continue to work even on the bizzare 8086 architecture.  I realize that
this is strictly incorrect (NULL should be cast to (char *)), but a lot
of existing code depends on this behavier.  Of course, pointer
assignments and comparisons to (int)0 MUST continue to work properly
also, or the compiler is broken (and in fact, they DO work properly)!