What exactly scenario can you change the contents of a parameter that uses Const? If there's a scenario, open a PMR.

I realize Const can sometimes make a temporary copy of a variable like Value does, but only if there's variation in definition. So generally the speed of a call using Const on parameters is faster - this may not be a concern for interactive shops, because the speed difference is likely insignificant, but in a batch processing shop, insignificant * a million or 100 million generally becomes significant.

Personally I only use Value if I need to modify the parameter but don't want to send it back to the caller. Even so, depending on if it's a procedure that'll be called millions of times over, I may instead use Const and load a static local variable instead.

-Kurt

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Jon Paris
Sent: Friday, June 15, 2012 4:14 PM
To: rpg400-l@xxxxxxxxxxxx
Subject: Re: Explanation of a datastructure as a parameter...


On 2012-06-15, at 4:56 PM, rpg400-l-request@xxxxxxxxxxxx wrote:

The datastructure DayDs is defined like the template t_DayDs. I don't
want the procedure GetDaysOfWeek to be able to change subfield1. If I had
passed all 7 parameters I would have specified the keyword const for the
first parameter.

How or can I do with a keyword when I pass a datastructure.

Using CONST won't ensure that the DS cannot be modified in and of itself. If the subprocedure did not use CONST in its PI then nothing will be protected.

The keyword you need if you need to be absolutely sure that it cannot be changed is VALUE. That will _always_ pass a copy of the data to the subproc. With CONST a copy is only made if the definitions are different, so you are reliant on the called routine being "well behaved".


Jon Paris

www.partner400.com
www.SystemiDeveloper.com




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