OPTION EXPLICITARRAY: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 10: Line 10:
* Unlike [[OPTION _EXPLICIT]], simple variables can still be used without a declaration. Example: {{InlineCode}}i = 1{{InlineCodeEnd}}
* Unlike [[OPTION _EXPLICIT]], simple variables can still be used without a declaration. Example: {{InlineCode}}i = 1{{InlineCodeEnd}}


{{PageErrors}}
=== Errors ===
* If used, [[OPTION _EXPLICITARRAY]] must be the very first statement in your program. No other statements can precede it (except for [[$NOPREFIX]] or comment lines started with an [[Apostrophe|apostrophe]] or [[REM]]).
* If used, [[OPTION _EXPLICITARRAY]] must be the very first statement in your program. No other statements can precede it (except for [[$NOPREFIX]] or comment lines started with an [[Apostrophe|apostrophe]] or [[REM]]).
* Do not use [[OPTION _EXPLICITARRAY]] in [[$INCLUDE]]d modules.
* Do not use [[OPTION _EXPLICITARRAY]] in [[$INCLUDE]]d modules.

Revision as of 02:09, 28 January 2023

OPTION _EXPLICITARRAY instructs the compiler to require arrays to be properly dimensioned with DIM or REDIM before first use. However, it doesn't require regular variables to be declared.

Syntax

OPTION _EXPLICITARRAY


Description

  • Normally statements like x(2) = 3 will implicitly create an array x(). OPTION _EXPLICITARRAY requires proper dimensioning for the array, helping to catch mistyped array and function names.
  • Unlike OPTION _EXPLICIT, simple variables can still be used without a declaration. Example: i = 1

Errors


Examples

Example: Avoiding simple typos with OPTION _EXPLICITARRAY results shown in the QB64 IDE Status area.

OPTION _EXPLICITARRAY
x = 1 'This is fine, it's not an array so not affected

DIM z(5)
z(2) = 3 'All good here, we've explicitly DIMmed our array

y(2) = 3 'This now generates an error

QB64 IDE Status will show: Array 'y' (SINGLE) not defined on line 7


See also



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