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



As I've been watching this thread, I've thought it strange to suggest not using CONST. I do it all the time. Now I realize that my use is either completely under my control, or when calling APIs. I use CONST for parameters defined as INPUT only in the documentation. It's always been safe.

Now I finally went to the RPG Reference and find this in the CONST documentation -

Attention!
Do not use this keyword on a prototype definition unless you are sure that the parameter will not be changed by the called program or procedure.

If the called program or procedure is compiled using a procedure interface with the same prototype, you do not have to worry about this, since the compiler will check this for you.

Although a CONST parameter cannot be changed by statements within the procedure, the value may be changed as a result of statements outside of the procedure, or by directly referencing a global variable.


This, for me, doesn't lead me to the practice of "never using CONST", as some have said. That seems extreme to me. Different strokes, different folks - I know, it's backwards!

I will use CONST primarily for the ability to use an expression in a parameter, when I think about it. Again, this fits calling APIs very nicely, since OUTPUT parameters have to have a variable, otherwise they make no sense.

I also don't think I want to make a practice based on "I might make a mistake". Not being perfect yet, I'll fix an error when it occurs. But I do assume that I won't make those mistakes around a concept I hope I've understood. If I may take a comment from another realm, "When you sin, sin boldly!" I use that kind of thinking when singing in a choir - go for it! Be bold! Figure out what you want to do, then do it, then assess - no need to figure if the note is wrong before you even sing it.

OK, time for work!
Vern

On 5/6/2013 4:25 AM, whatt sson wrote:
If you want to the called procedure to change the parameter data, why
wouldn't you just pass the correct type by reference? There is no
difference in performance between passing a parameter by reference and
passing a pointer by value, but there is a gigantic difference in
maintainability.
You're right.

I just meant that - IF - if performance was not an issue i would use
"value" all the time and - probably - never "const".




On Sat, May 4, 2013 at 5:09 PM, Barbara Morris <bmorris@xxxxxxxxxx> wrote:

On 5/2/2013 5:41 AM, john erps wrote:
So if performance was not an issue at all i would use "value" everytime,
and a pointer with "value" only if i want to pass data back (change the
data from the called procedure).

If you want to the called procedure to change the parameter data, why
wouldn't you just pass the correct type by reference? There is no
difference in performance between passing a parameter by reference and
passing a pointer by value, but there is a gigantic difference in
maintainability.

--
Barbara
--
This is the RPG programming on the IBM i (AS/400 and iSeries) (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.