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



If you defined the variable globally you would not need to pass it but the
general rule is make the number of global variables as small as possible.
Preferably zero.

You would want to do this for several reasons the first being the less
static storage that a program has the faster it will run. The primary reason
though is that when a variable is global it means that any procedure can
operate on it.

If you define variable x globally and in one procedure you are expecting x
to have a given value but another procedure changes it you can have
problems. If x is defined locally only that procedure can operate on it. If
possible, you want to minimize side effects. Think of each procedure as a
mini program that does one thing and has it own variables so you try to
avoid the use of global variables unless you have something that is operated
on my multiple procedures.

On Fri, Nov 5, 2010 at 12:36 PM, Jeff Young <cooljeff913@xxxxxxxxx> wrote:

Just curious, but if your proceedure needed a variable that had been
defined
globaly and was not changing it, why would you not use the global value
instead
of passing it.

Also, if you *wanted* your proceedure to update a global variable, why not
just
use it instead of passing it as a parm?

Thanks,

Jeff Young
Sr. Programmer Analyst
IBM -e(logo) server Certified Systems Exper - iSeries Technical Solutions
V5R2
IBM Certified Specialist- e(logo) server i5Series Technical Solutions
Designer V5R3
IBM Certified Specialist- e(logo)server i5Series Technical
Solutions Implementer V5R3









________________________________
From: Vern Hamberg <vhamberg@xxxxxxxxxxx>
To: RPG programming on the IBM i / System i <rpg400-l@xxxxxxxxxxxx>
Sent: Fri, November 5, 2010 1:03:36 PM
Subject: Re: MAIN or cycleless programs.

David

So far as I know, anything you declare outside of any procedures is
global - put them at the top, ahead of everything else.

But not having done this, I could be mistaken.

Of course, some, including me, would say NOT to use global variables.
Use parameters - that's what procedures are for. Declare what you need
at the earliest opportunity, then pass it to your various procedures.

I think some stuff still needs to be global - I don't remember what I've
run into, but something recently.

Vern

On 11/5/2010 8:39 AM, David FOXWELL wrote:
Hi,

I've just done my first program using the MAIN keyword. I have to admit
that I
didn't see any benefit from doing so. I particularly missed having a main
procedure with all the global definitions in it. Especially the program
parameters.

Any thoughts would be welcome.

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