User Tools

Site Tools


passing_20arrays_20to_20subs_20and_20functions

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
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
passing_20arrays_20to_20subs_20and_20functions.txt · Last modified: 2024/01/05 00:22 by 127.0.0.1