Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site allegra.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!alan From: alan@allegra.UUCP (Alan S. Driscoll) Newsgroups: net.lang.c Subject: (char *) NULL Message-ID: <2354@allegra.UUCP> Date: Tue, 13-Mar-84 13:22:06 EST Article-I.D.: allegra.2354 Posted: Tue Mar 13 13:22:06 1984 Date-Received: Wed, 14-Mar-84 07:39:06 EST Organization: AT&T Bell Laboratories, Murray Hill Lines: 31 Here we go again... C was created with a specific machine model in mind, and the intention that ON MACHINES CONFORMING TO THAT MODEL all language constructs would be extremely efficient to implement at the machine level. This makes it intrinsically fast, both in compilation and at run-time. The discussions in net.lang.c about problems in the definition of C seem largely to relate to machines that DON'T CONFORM TO THE MODEL! In particular, C is designed for a BYTE-ADDRESSED machine (re: NULL parameter to function problem) with a few registers, and special machine-language opcodes to make certain operations efficient -- operating with zero, pointer indirection, and so forth. Bennett Todd ...{decvax,ihnp4,akgua}!mcnc!ecsvax!bet The 68000 is a byte-addressable machine. If you pass a 16-bit integer, such as NULL, to a function expecting a 32-bit pointer, you're going to have problems. This has been explained, over and over, and over... Maybe C has too sophisticated a model of the programmer. -- Alan S. Driscoll AT&T Bell Laboratories