×
The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.
Charles, that is helpful, thanks.
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Charles Wilt
Sent: Wednesday, March 28, 2012 8:01 AM
To: RPG programming on the IBM i / System i
Subject: Re: passing parameters longer than expected
Nope, when CONST is used, the parameter is indeed passed by reference (ie. the 16 byte address of the variable is passed).
The key is to understand that when CONST is specified, if needed the compiler creates a temporary variable, 40a in this case and passes the address of that temporary variable.
It is usually sufficient to simply imagine CONST always creates such a temporary variable. As in the case of Joe's example.
However, as Barbara mentions, in the case of your variable being longer than the parm, the compiler doesn't actually need to create a temporary variable so the address passed is that of your original variable.
HTH,
Charles
On Wed, Mar 28, 2012 at 9:33 AM, Gary Thompson <gthompson@xxxxxxxxxxx> wrote:
Dave, and Barbara, I thought I was following this thread, but now I am
confused and have a question:
Earlier, Joe stated:
"By specifying CONST you specifically told the compiler to
ignore any
data past the 40A; in effect, you asked it to do a MOVEL (or
EVAL) of
your 100A into a temporary 40A field and call with it."
I >think< that means the parameter passed would be more like "by value"
because the called program has no >reference< to the 40A memory.
If "by constant reference", works as described above, why is the word
>reference< used ?
--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.