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