On Tue, 25 Feb 2020 10:33:36 -0800, Charles Mills wrote:
>
>EDCDSECT does the world's ugliest job on assembler ORG and things like FL0 but 
>it ends up technically correct. Ugly as sin, but the layouts are right.
> 
Yup.

>struct tiot {
>  unsigned char  tiocnjob[8];
>                 /* -         JOB NAME                                 */
>  struct {
>    struct {
>      unsigned char  _tiocpstn[8];
>                     /* -         8-BYTE PROC STEP NAME FOR PROCS     @P1A */
>      } tiocstpn;
>    unsigned char  _tiocjstn[8];
>                   /* -         8-BYTE JOBSTEP NAME FOR PROCS       @P1A */
>    } tiocstep;
> 
Why "*unsigned* char"  I know that "char *", "unsigned char *", and "signed 
char *"
are pairwise incompatible, per ANSI, and IBM's C is the only processor I know 
that
enforces this.  I once needed to correct a shareware author on a transgression.
(IIRC, he used a cast as an L-value.)  But I'd expect a z-centric product to 
rely on
the native unqualified construct.  Greater portability?


On Tue, 25 Feb 2020 10:29:39 -0800, Charles Mills wrote:

>And that's why it works (but does not work without that cast), or as Gil put
>it "So I can't do "foo -> member", but must "(type *) foo-> member".
>
That appears to be Charles agreeing with Shmuel's uncharacteristically
agreeing with Charles's agreeing with me.

+1.  Me, too.

-- 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