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)!