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

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.