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 [email protected] with the message: INFO IBM-MAIN