passing_20arrays_20to_20subs_20and_20functions
This is an old revision of the document!
Passing arrays to SUBs and FUNCTIONs
by Richard Russell, March 2014
LB Booster provides the capability of passing an entire array as a parameter to a SUB or a FUNCTION. Here is a simple example:
one(5) = 123
call test one()
end
sub test two()
print two(5)
end sub
To demonstrate that the array two() is genuinely 'local' to the SUB:
one(5) = 123
two(5) = 456
call test one()
print two(5)
end
sub test two()
print two(5)
end sub
Arrays are automatically passed 'by reference' (you don't need to specify BYREF):
one(5) = 123
two(5) = 456
call test one()
print two(5)
print one(5)
end
sub test two()
print two(5)
two(5) = 789
end sub
But you must use BYREF if you want to REDIM the array inside the SUB (requires LBB v2.53 or later):
one(5) = 123
two(5) = 456
call test one()
print two(5)
print one(15)
end
sub test byref two()
print two(5)
redim two(15)
two(15) = 789
end sub
Of course you can use a FUNCTION instead of a SUB:
one(5) = 123
two(5) = 456
print test(one())
print two(5)
print one(5)
end
function test(two())
test = two(5)
two(5) = 789
end function
passing_20arrays_20to_20subs_20and_20functions.1522502372.txt.gz · Last modified: 2024/01/05 00:17 (external edit)