Jump to navigation Jump to search
Revision as of 02:57, 11 February 2013 by
_DEFINE defines a range of variable names according to their first character as a datatype.
- Variable start letter range is in the form firstletter-endingletter (like A-C) or just a single letter.
- Datatypes: INTEGER, SINGLE, DOUBLE, LONG, STRING, _BIT, _BYTE, _INTEGER64, _FLOAT, _OFFSET, _MEM
- Can also use the _UNSIGNED definition for positive whole INTEGER type numerical values only.
- When a variable has not been defined or has no type suffix, the value defaults to a SINGLE floating point value.
- _DEFINE sets the variable types of all letters or letter ranges as encountered in the program flow(even in statement blocks not executed and all subsequent SUB procedures).
- 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!
- Qbasic's IDE may add DEF statements before any SUB or FUNCTION. QB64(like QB) will change all variable types in subsequent sub-procedures to that default variable type without giving a "Parameter Type Mismatch" warning or adding the proper DEF statement to subsequent procedures! If you do not want that to occur, either remove that DEF statement or add the proper DEF type statements to subsequent procedures. May also affect $INCLUDE procedures!
Example: Defining variables that start with the letters A, B, C or F as unsigned integers, including the Add2 FUNCTION.
- Explanation: Unsigned integers can only return positive values while ordinary integers can also return negative values.