The other thing I am having to do is eval the pointer to the parameter
in the C specs, because the compiler doesn't like
D pReportLine S * Inz(%Addr(ReportLine))
If the goal is to get the data into a data structure, why not make the
parameter a data structure in the first place? Doing in that way, you
could pass by const reference without any problems.
Even with ReportLine being a parameter passed by Value. So this means
that, in addition to moving 140 bytes each module call, I am having to
eval a pointer every call also.
That's true. However, that's also what INZ(%addr(foo)) does... so doing it
in the calcs shouldn't affect performance.
Or, if you really need to get every little drop of performance, you could
always use a plain old ordinary reference parameter. Personally, I prefer
CONST because it helps catch coding errors, aids in verstility, etc. But
if your #1 requirement is performance, using an ordinary reference parm
would obviate the need to pass by value, since you can get & operate a
pointer to a ref parm, as long as it's not const.
Eliminating the pointer logic and simply passing the data structure would
probably be the best bet, though. Best of both worlds, that is.
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.