Difference between revisions of "DEFINE"

From QB64 Wiki
Jump to navigation Jump to search
imported>Clippy
m
imported>Clippy
m
Line 14: Line 14:
 
''Usage:''
 
''Usage:''
 
* '''When a variable has not been defined or has no type suffix, the value defaults to a [[SINGLE]] floating point value.'''
 
* '''When a variable has not been defined or has no type suffix, the value defaults to a [[SINGLE]] floating point value.'''
* _DEFINE sets the [[type]] of all variable names with the starting letter(s) or letter ranges as encountered in the program flow(even in statement blocks not executed and all subsequent [[SUB]] procedures).  
+
* _DEFINE sets the [[type]] of all variable names with the starting letter(s) or letter ranges when encountered in the progression of the program(even in conditional statement blocks not executed and 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!'''
 
* '''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 [[ERROR Codes|"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!
 
* '''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 [[ERROR Codes|"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!

Revision as of 07:55, 11 February 2013

_DEFINE defines a set of variable names according to their first character as a specified datatype.


Syntax

_DEFINE letter[-range, ...] AS [_UNSIGNED] datatype


Parameters


Usage:

  • When a variable has not been defined or has no type suffix, the value defaults to a SINGLE floating point value.
  • _DEFINE sets the type of all variable names with the starting letter(s) or letter ranges when encountered in the progression of the program(even in conditional statement blocks not executed and 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.

_DEFINE A-C, F AS _UNSIGNED INTEGER PRINT Add2(-1.1, -2.2) END FUNCTION Add2 (one, two) Add2 = one + two END FUNCTION

65533

Explanation: Unsigned integers can only return positive values while ordinary integers can also return negative values.


See also



Navigation:
Go to Keyword Reference - Alphabetical
Go to Keyword Reference - By usage
Go to Main WIKI Page