Thanks Charles. I wish the help for the BASED keyword would mention
that implicit definition would occur when supplying a Based parameter
that is not defined elsewhere. (If it does exist somewhere, someone
please point it out to me.) I've referred to the documentation for
Based in the past and was disappointed that I couldn't find anything
about using a pointer parameter name that wasn't defined elsewhere in
the program (e.g. TEMPLATE).
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Charles Wilt
Sent: Friday, February 13, 2009 10:03 AM
To: RPG programming on the IBM i / System i
Subject: Re: Declaring the same DS in caller and callee
On Fri, Feb 13, 2009 at 9:58 AM, Kurt Anderson
<kurt.anderson@xxxxxxxxxxxxxx> wrote:
However, if you give it a bogus pointer, no memory will ever be
allocated for that variable - hence it's "template" nature.
I think you're a little confused....or perhaps your statements just
came out wrong.
--Any variable that's BASED(), doesn't have memory allocated to it.
--There's no "bogus" pointer. A pointer used for basing can be
explicitly or implicitly defined.
Thus:
//explicitly defined myPointer
d myPointer s *
d myBased s 10a based(myPointer)
And
//implicitly defined myPointer
d myBased s 10a based(myPointer)
Both result in the same thing. Once you assign a value to myPointer,
you can access the 10 charactors of data at that location via the
myBased variable.
In both case the compile listing will show myPointer defined as a
pointer.
HTH,
Charles
As an Amazon Associate we earn from qualifying purchases.