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