$STATIC: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
m (QBasic capitalisation)
Tag: visualeditor
No edit summary
Line 1: Line 1:
The '''$STATIC''' Metacommand allows the creation of STATIC(un-changeable) arrays.
The [[$STATIC]] [[Metacommand|metacommand]] allows the creation of static (unresizable) arrays.
 




{{PageSyntax}}
{{PageSyntax}}
::: REM '''$STATIC'''
:{[[REM]] | [[apostrophe|']] } [[$STATIC]]




{{PageDescription}}
* QBasic [[Metacommand]]s require a REM or apostrophy (') before them and are normally placed at the start of the main module.
* QBasic [[Metacommand]]s require a REM or apostrophy (') before them and are normally placed at the start of the main module.
* Static arrays cannot be resized. If a variable is used to size any array, it becomes [[$DYNAMIC]].
* Static arrays cannot be resized. If a variable is used to size any array, it becomes [[$DYNAMIC]].
* A [[REDIM]] statement has no effect on [[$STATIC]] arrays except perhaps a [[ERROR Codes|duplicate definition error]] at the [[REDIM]] code.
* A [[REDIM]] statement has no effect on [[$STATIC]] arrays except perhaps a [[ERROR Codes|duplicate definition error]] at the [[REDIM]] statement.
* The array's type cannot be changed once [[DIM]] and a literal value sets the dimensions and element size.
* The array's type cannot be changed once [[DIM]] and a literal value sets the dimensions and element size.
* [[$STATIC]] defined program [[arrays]] cannot be [[REDIM|re-sized]] or use [[_PRESERVE]].
* [[$STATIC]] defined program [[arrays]] cannot be [[REDIM|re-sized]] or use [[_PRESERVE]].




{{PageExamples}}
''Example:'' When a variable is used, the array can be resized despite $STATIC. The array becomes [[$DYNAMIC]].
''Example:'' When a variable is used, the array can be resized despite $STATIC. The array becomes [[$DYNAMIC]].
{{CodeStart}} '' ''
{{CodeStart}}
'{{Cl|$STATIC}}
'{{Cl|$STATIC}}


Line 23: Line 24:
{{Cl|REDIM}} array(2 * size)
{{Cl|REDIM}} array(2 * size)


{{Cl|PRINT}} {{Cl|UBOUND}}(array) '' ''
{{Cl|PRINT}} {{Cl|UBOUND}}(array)  
{{CodeEnd}}
{{CodeEnd}}
: ''Note:'' [[DIM]] using a literal numerical size will create a Duplicate definition error.
: ''Note:'' [[DIM]] using a literal numerical size will create a Duplicate definition error.




''See also:''
{{PageSeeAlso}}
* [[$DYNAMIC]], [[STATIC]]
* [[$DYNAMIC]], [[STATIC]]
* [[Arrays]], [[Metacommand]]
* [[Arrays]], [[Metacommand]]

Revision as of 21:38, 11 June 2022

The $STATIC metacommand allows the creation of static (unresizable) arrays.


Syntax

{REM | ' } $STATIC


Description

  • QBasic Metacommands require a REM or apostrophy (') before them and are normally placed at the start of the main module.
  • Static arrays cannot be resized. If a variable is used to size any array, it becomes $DYNAMIC.
  • A REDIM statement has no effect on $STATIC arrays except perhaps a duplicate definition error at the REDIM statement.
  • The array's type cannot be changed once DIM and a literal value sets the dimensions and element size.
  • $STATIC defined program arrays cannot be re-sized or use _PRESERVE.


Examples

Example: When a variable is used, the array can be resized despite $STATIC. The array becomes $DYNAMIC.

'$STATIC

INPUT "Enter array size: ", size
DIM array(size)   'using an actual number instead of the variable will create an error!

REDIM array(2 * size)

PRINT UBOUND(array) 
Note: DIM using a literal numerical size will create a Duplicate definition error.


See also



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link