×
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.
On 3/27/2012 8:58 AM, Joe Pluta wrote:
The problem is the use of the CONST keyword. 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. Had you not had CONST on the
prototype, the compiler would have indeed complained.
For a prototyped parameter passed by reference (no CONST or VALUE), the
compiler doesn't complain about a fixed length passed parameter being
longer than the fixed length prototyped parameter. It only cares about
the passed parameter being shorter.
For varying-length parameters passed by reference, the compiler does
require that the declared length of the passed parameter match the
declared length of the prototyped parameter.
When we added support for prototyped parameters, we were mainly
concerned with data corruption, which isn't possible with too-long
parameters. After 15+ years of reflection, I think we were perhaps a bit
short-sighted not to also worry about data loss, and maybe should have
required *VARSIZE for any reference-parameter mismatch.
Maybe OPTIONS(*EXACT) is needed.
As an Amazon Associate we earn from qualifying purchases.
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.