This isn't a response to anybody in general, just my thoughts. The
thread has gotten a little crazy to follow.
We use both methods where I work, and I've use a variation of the
/define version in a few instances too.
Almost all of our prototypes are in a single source member. Prototypes
are preceded with a p then the first nine characters of the function
name. We normally don't define work variables or ds in the /copy member
unless for when we're prototyping external programs that needs i/o
fields. Then we prefix with something then an underscore (addr_Zip).
There's one reason I like the /define version in that it allows for the
full function name to be used. But, I think it is horrible to force the
app developer to have three lines to do one thing. The black box
programmer needs to do three line for one thing.
A variation that I use is to auto define depending on what has already
been /included. I use this method, probably the wrong way, instead of
multiple module binding. I pull in the source the old fashion way to
each prog that uses it. I present it here as a variation.
For example:
/if NOT defined(MyFunction_Prototype)
/define MyFunction_Prototype
MyFunction PR
...
/eof
/else
/undefine MyFunction_Prototype
MyFunction PI
...
/endif
Then in the applications I have a /copy in the D specs and one in the P
spec area without having any /define.
My preference, if anybody really cares at this point in the thread, is
individual /copy members due to an attempt at self documentation.
My wish would be to have 32 char member names so we could use a member
name that more matches the function name.
Take it or leave it...
Bruce in AR
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.