View Single Post
  #11   Report Post  
Posted to microsoft.public.excel.programming
Peter T Peter T is offline
external usenet poster
 
Posts: 5,600
Default Function to return two values

Hi Bernd,

I take it you are referring to this comment -

"
Limit the number of parameters passed by reference (var parameters in
Pascal, pointers passed in C). There are only two ways that a subroutine can
screw up a variable in another subroutine: global variables and variables
passed such that they can be changed. The problem in both cases is that you
increase the chance that something will be changed in a way that you didn't
expect.
"

The paper is all about style, by definition that's subjective albeit based
on hard learnt experience. As a general comment I do not entirely disagree,
however ByRef has a valid and useful purpose. Indeed in our example the only
reason for the existence of the argument is to be able to pass it ByRef, for
the sole purpose of returning it with a new value.

For other purposes, where there is no deliberate intention to change the
ByRef argument, it can still be worth sending ByRef where performance is an
issue. It depends slightly on the data type but in general it's faster to
send a pointer to the variable (ByRef) rather than make and send a copy of
the variable (ByVal).

Then let's agree to disagree.


No problem :-)

Regards,
Peter T

PS in VB/A ByRef is the default


"Bernd P" wrote in message
...
Hello Peter,

[Not OT - w.r.t ByRef]
Then let's agree to disagree.

My basis is:
http://ei.cs.vt.edu/~cs2604/Standards/Standards.html

[Search for the first two occurances of "reference".]

Regards,
Bernd