Can a subroutine return a 64-bit integer?

May 20, 2008
10,618
81
Syracuse, NY, USA
In the RETURN command from a GOSUB? I think that's the same thing as an exit code or %ERRORLEVEL% -- a 32-bit integer.
Yeah! I found out the hard way. I have a subroutine to compute multinomial coefficients and started getting screwy results when the numbers got big.
 

rconn

Administrator
Staff member
May 14, 2008
11,925
133
ERRORLEVEL is 32-bit because (1) nobody has ever (until now!) needed more, and (2) 64-bit returns would break CMD compatibility.

But there's no reason you have to pass it back through RETURN or ERRORLEVEL; you could as easily put it in an environment variable (and have more bits than you could ever use).
 
May 20, 2008
10,618
81
Syracuse, NY, USA
ERRORLEVEL is 32-bit because (1) nobody has ever (until now!) needed more, and (2) 64-bit returns would break CMD compatibility.

But there's no reason you have to pass it back through RETURN or ERRORLEVEL; you could as easily put it in an environment variable (and have more bits than you could ever use).
Yup, that's what I did.