Standard Data Type Limits

FreeBASIC

Standard Data Type Limits
 
Standard variable types and limits.

Numeric Types

Type Size in bits Format Minimum Value Maximum Value Literal Suffix Sig. Digits
BYTE 8 signed integer-128 +1272+
UBYTE 8 unsigned integer0+255 2+
SHORT16signed integer-32768 +32767 4+
USHORT16 unsigned integer0 65535 4+
LONG32signed integer-2147483648 +2147483647&, l9+
ULONG 32unsigned integer0+4294967295ul9+
INTEGER32/64 [*] signed integer[*]32bit: -2147483648, 64bit: -9223372036854775808[*]32bit: +2147483647, 64bit: +9223372036854775807%[*]
UINTEGER32/64 [*] unsigned integer0[*]32bit: +4294967295, 64bit: +18446744073709551615u[*]
LONGINT 64signed integer-9223372036854775808+9223372036854775807ll18+
ULONGINT64unsigned integer0 +18446744073709551615 ull 19+
SINGLE 32floating point[**]+/-1.401 298 E-45 [**]+/-3.402 823 E+38!, f6+
DOUBLE64 floating point[**]+/-4.940 656 458 412 465 E-324[**]+/-1.797 693 134 862 316 E+308#, d15+
enums32/64 [*] signed integer[*]32bit: -2147483648, 64bit: -9223372036854775808[*]32bit: +2147483647, 64bit: +9223372036854775807[*]


[*] Integer and UInteger data types vary with platform, matching the size of pointers.
[**] The minimum and maximum values for the floating-point types Single and Double are, respectively, the values closest to zero and the values closest to positive and negative infinity.

String Types

Type Character Size (in bytes) Minimum Size (in characters) Maximum Size (in characters) Literal Suffix
String 1 0 [**]32bit: +2147483647, 64bit: +9223372036854775807 $
Zstring 1 0 [**]32bit: +2147483647, 64bit: +9223372036854775807 [N/A]
Wstring [*] [*]0 [*,**]32bit: +2147483647, 64bit: +9223372036854775807 [N/A]


[*] Unicode, or "wide", characters vary in both size and availability with platform.
[**] All runtime library string procedures take and produce Integer values for sizes and positions. The actual maximum size will vary (smaller) with storage location and/or platform.

Arrays

Platform Maximum Subscript Range Maximum Elements per Dimension Minimum/Maximum Dimensions Maximum Size (in bytes)
32bit [*][-2147483648, +2147483647] [*]+2147483647 1/9 [*]+2147483647
64bit [*][-9223372036854775808, +9223372036854775807] [*]+9223372036854775807 1/9 [*]+9223372036854775807


[*] All runtime library array procedures take and produce Integer values for subscripts and indexes. The actual limits will vary (smaller) with the number of dimensions, element size, storage location and/or platform.

See also

ProPgIdentifierRules usage of suffixes for variables
ProPgLiterals usage of suffixes for literals / numbers