Date: Fri, 24 Nov 1995 12:05:45 -0700 (MST) From: Terry Lambert <terry@lambert.org> To: peter@taronga.com (Peter da Silva) Cc: hackers@FreeBSD.ORG, terry@lambert.org Subject: Re: How long is long? Message-ID: <199511241905.MAA10078@phaeton.artisoft.com> In-Reply-To: <199511241510.JAA12572@bonkers.taronga.com> from "Peter da Silva" at Nov 24, 95 09:10:07 am
next in thread | previous in thread | raw e-mail | index | archive | help
> Terry Lambert <terry@lambert.org> wrote:
> >That's a bug in the standard in not having mechanisms for obtaining
> >sized types. For a 64 bit int (requiring a 64 bit long), short is
> ^^-- 128
^^^-- 64
The size of long shall be greater than or equal to the sizeof int. Your
128 says "greater than" and ignores "equal to".
> >either 16 or 32 bits (undefined) and we lose access to either 32 or
> >16 bit types (respectively).
>
> What architecture requires a 64 bit (int)?
Any architecture where 64 bits is the bus transfer size and the registers
are 64 bits or larger. It's defined as the "natural type" for the machine.
But I was assuming a 64 bit int, and it was the int requiring the 64
bit long, not anything requiring a 64 bit int.
My complaint is about the long >= int requirement on longs.
> IMHO, DEC did exactly the right thing making int 32 bits and long 64 bits,
> given the history of the language, but IMHO the original BSD port to the
> VAX should have done the same thing, rather than keeping it 32 bits for
> easier porting of PDP-11 code.
>
> Long doesn't and shouldn't mean "32 bits".
Maybe not. But *something* should mean "32 bits".
The problem is that with a 64 bit int (which, despite your opinion of
DEC and grandfathering old software, is correct for the Alpha):
int == 64 :== long == 64
short == 32 || short == 16
char == 8
You lose access to either 32 bit or 16 bit sized types.
Period.
What about existing on-disk data?
ANSI doesn't allow "long long" or "quad".
Terry Lambert
terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199511241905.MAA10078>
