Pascal not considered harmful - was Re: Rich kids are into COBOL
Sean Conner
spc at conman.org
Sat Feb 21 04:38:58 CST 2015
It was thus said that the Great Chuck Guzis once stated:
> On 02/20/2015 09:47 PM, Eric Smith wrote:
>
> >One can argue that a not-quite-C compiler for a PDP-10 that supported
> >6-, 7-, and 8-bit character types as well as 18-bit and 36-bit
> >integers would be useful, but by definition it wouldn't actually be C.
>
> What does the C standard say about the physical size of an int in bits,
> versus the largest and smallest integer that can be held in those bits?
The constraints are:
sizeof(short) <= sizeof(int)
sizeof(int) <= sizeof(long)
sizeof(short) < sizeof(long)
And the minumum ranges are:
signed short -32,767 .. 32,767
signed int -32,767 .. 32,767
signed long -2,147,483,647 .. 2,147,483,647
unsigned short 0 .. 65,536
unsigned int 0 .. 65,536
unsigned long 0 .. 4,294,967,296
Of course, they can be larger. For instance, this is legal:
sizeof(short) == 2
sizeof(int) == 4
sizeof(long) == 8
By defintion, sizeof(char) == 1, and the minimum range is
signed char -127 .. 127
unsigned char 0 .. 255
> Does C require 1's or 2's complement or can it support sign-magnitude
> integers?
Given the defined ranges, and the fact that signed overflow is undefined
behavior, I think C can be used on sign-magnitude and 1's complement
machines (however few those are). Unsigned overflow is defined to wrap
around to 0.
-spc
More information about the cctalk
mailing list