{{fbdoc item="title" value="OPTION BASE"}}---- Specifies a default lower bound for array declarations {{fbdoc item="syntax"}}## **Option Base** //base_subscript// ## {{fbdoc item="param"}} ##//base_subscript//## an numeric literal value {{fbdoc item="desc"}} ##**Option Base**## is a statement that sets the default lower bound for any following array declarations. This default remains in effect for the rest of the module in which ##**Option Base**## is used, and can be overridden by declaring arrays with an explicit lower bound, or with another ##**Option Base**## statement. Note: initially, the default base is ##0##. {{fbdoc item="ex"}} {{fbdoc item="filename" value="examples/manual/check/KeyPgOptionbase_1.bas"}}%%(freebasic) '' Compile with the "-lang qb" or "-lang fblite" compiler switches #lang "fblite" Dim foo(10) As Integer ' declares an array with indices 0-10 Option Base 5 Dim bar(15) As Integer ' declares an array with indices 5-15 Dim baz(0 To 4) As Integer ' declares an array with indices 0-4 %% {{fbdoc item="lang"}} - Only available in the //[[CompilerOptlang|-lang fblite]]// and //[[CompilerOptlang|-lang qb]]// dialects. - In //[[CompilerOptlang|-lang fb]]//, ##**Option Base**## is not allowed, and the default lower bound is always ##0##. {{fbdoc item="diff"}} - QBASIC only supported values of ##0## or ##1## for ##//base_subscript//##. - In QBASIC the word ##**Base**## was a reserved keyword, and couldn't be used as a variable name. - Arrays must always be explicitly created in ""FreeBASIC"". QBASIC would implicitly create an array from ##//base_subscript//## to ##10## if one was used in code without being predefined. {{fbdoc item="see"}} - ##[[KeyPgDim|Dim]]## - ##[[KeyPgRedim|Redim]]## - ##[[KeyPgLbound|LBound]]## {{fbdoc item="back" value="CatPgCompilerSwitches|Compiler Switches"}}