On Sun, 26 Apr 2020 12:58:57 -0700, Charles Mills wrote:

>+1
>
>Or RTFKC:
>https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/com.ibm.zos.v2r1.cbclx01/zos_supporting_ansi_iso_standards.htm
>
Where I read:

Equivalent type of char: signed char, unsigned char, or user-defined:
    The default for char is unsigned

My experience, long ago, is that these are distinct types: C/C++ reported
a syntax error for formal parameter (char *), actual parameter (unsigned
char * ).  It's not what it means; it's what it's called.

Sequence of white-space characters (excluding the new-line):
    Any spaces or comments in the source program are interpreted as one space.

This may have some contention with historic use of comments as concatenators.
E.g. something like writing foo/* */bar for foobar.

The result of converting an integer from a shorter signed integer:
    The lowest 2 bytes of the integer are used to represent the short int.

??? I'd expect sign extension.  But wasn't there a transition from
unsigned-preserving to value-preserving.  E.g.:
    K&R:  -1 > (unsigned) 0
    ANSI: -1 < (unsigned) 0

CDC (not IBM) 3600 and earlier 1604 were wretched hybrids.  Numeric
arithmetic was 1's complement; addressing arithmetic was 2's complement.
And CDC 6600 had no compare instruction.  FORTRAN compared integers
by subtracting (hardware didn't report overflow) and testing the sign of
the result.

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to