Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site cadre.ARPA
Path: utzoo!watmath!clyde!bonnie!akgua!sdcsvax!dcdwest!ittvax!decvax!mcnc!idis!cadre!km
From: km@cadre.UUCP
Newsgroups: net.lang.c
Subject: Re: lint, pointers, 0 (what else?)
Message-ID: <250@cadre.ARPA>
Date: Thu, 7-Feb-85 16:42:53 EST
Article-I.D.: cadre.250
Posted: Thu Feb  7 16:42:53 1985
Date-Received: Mon, 11-Feb-85 06:05:23 EST
References: <366@harvard.ARPA>
Reply-To: km@cadre.ARPA (Ken Mitchum)
Distribution: net
Organization: Decision Systems Lab., Univ. of Pgh.
Lines: 25
Summary: 

In article <366@harvard.ARPA> breuel@harvard.UUCP writes:
>
>Finally, there is no good reason for not having
>sizeof(int)==sizeof(char *).  'int' is not guaranteed to be the fastest
>integer type around (speedof(int)<=speedof(short) on practically all
>machines...). And if you are worried about getting an efficient integer
>type portably, why don't you just use 'typedef short EfficientInt;' :-?
>
>K&R (quoting from my mind) calls 'int' the 'natural' choice for an
>integer data type on the target machine. In my opinion, the 'natural
>choice' is the size of a pointer (the largest pointer that is).
>

Indeed? And what about the 8086, or worse yet, 8088? A full pointer
is a 20 bit address which must be specified by a 32 bit value  (a
16 bit offset and 16 bit segment which overlap for all but 4 bits!).
Add to that the 8088, which has 16 bit registers but does transfers
8 bits at a time. What is the "natural" choice for an int on these
machines, and why should it have anything at all to do with their
pointer architecture?


Ken Mitchum
cadre.ARPA