> From: bmorris@ca.ibm.com
>
> If you're prior to V5R1 (you can do this in V5R1 too, if you like),
> do it this way:
>
>      P CX_GENERATE     b
>      D                 pi
>      D  bufferParm                 2000A
>
>      D buffer          DS          2000    based(pBuffer)
>      D  bufary                        8A   overlay(buffer:1) dim(250)
>      D  bufwmk                       16A   overlay(buffer:1)
>
>      C             eval     pBuffer = %addr(bufferParm)
>      ... now you just use bufAry and bufwmk as usual

Barbara, Eric, Joel, thanks.  The pointer will work just fine for now (I'm
at V4R5, so no "advanced" techniques for me just yet <grin>).  On the other
hand, it would be nice to be able to identify in your procedure parameter
list the fact that a variable is local:

>     P CX_GENERATE     b
>     D                 pi
>     D  buffer                             LOCAL
>
>     D buffer          DS          2000
>     D  bufary                        8A   overlay(buffer:1) dim(250)
>     D  bufwmk                       16A   overlay(buffer:1)

This way, I could define whatever I want in my D-specs internally, and
simply refer to it on the parameter list.  The only thing the caller needs
to know is the overall length of the parameter.

Then again, I suppose this is a fairly special purpose sort of thing; how
often will the caller not know the internal definition of the parameter?  If
you REALLY want to hide the internals of the parameter, just use a pointer
and have methods that allocate and free the space dynamically.

Joe



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.