From QB64 Wiki
- Sets the INTEGER range of elements(indices) of a STATIC array. If only one number is used, the lowest boundary is 0.
- When used before an array is dimensioned, OPTION BASE 1 can set the array's default lower boundary to 1.
- DIM SHARED shares variable values with sub-procedures without passing the value in a parameter.
- Uses the AS keyword to define a variable or array type AS...
- QB64 variable types:
- Note: When a variable has not been defined or has no type suffix, the value defaults to SINGLE.
- When the $DYNAMIC metacommand or REDIM is used, array element sizes are changeable(not $STATIC).
- Use REDIM instead of DIM to dimension arrays as dynamic without the $DYNAMIC metacommand.
- Use REDIM _PRESERVE in QB64 to retain previous array values when changing the size of an array.
- REDIM _PRESERVE cannot change the number of array dimensions! An error will occur!
- Dynamic arrays MUST be REDIMensioned if ERASE or CLEAR are used as the arrays are completely removed.
- All numerical variable types except SINGLE, DOUBLE and _FLOAT can be dimensioned as _UNSIGNED(suffix ~) or positive only.
- NOTE: Many Qbasic keyword variable names CAN be used with a STRING suffix($) ONLY! You CANNOT use them without the suffix, use a numerical suffix or use DIM, REDIM, _DEFINE, BYVAL or TYPE variable AS statements!
- Warning! Do not use negative array Upper bound index values as OS access or "Out of Memory" errors will occur!
Example 1: Defines Qt variable as a one byte fixed length string.
Example 2: Dimensions and types an array.
Example 3: Dimensions array with an INTEGER type suffix.
Example 6: QB64 is more flexible than Qbasic when it comes to "Duplicate Definition" errors. The following code does not error:
- Explanation: The SINGLE variable can be differentiated from the LONG x variable by using suffixes like x! or x& in later code.
Example 7: The following code will create a "Name already in use" status error in QB64 when the variable types are the same.
- Explanation: QB64 gives an error because the creation of the new variable would make referring to the existing one impossible.
- _DEFINE, _PRESERVE
- REDIM, TYPE
- ERASE, CLEAR
- DEFINT, DEFSNG, DEFLNG, DEFDBL, DEFSTR
- Mathematical Operations, Arrays
- Variable Types