DEFINE: Difference between revisions
Jump to navigation
Jump to search
Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link
TheSnowDog (talk | contribs) m (QBasic capitalisation) Tag: visualeditor |
No edit summary |
||
(4 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
{{PageSyntax}} | {{PageSyntax}} | ||
:[[_DEFINE]] {{Parameter|letter}}[{{Parameter|-range}}, ...] [[AS]] [ | :[[_DEFINE]] {{Parameter|letter}}[{{Parameter|-range}}, ...] [[AS]] [[[_UNSIGNED]]] data[[Variable Types|type]] | ||
{{ | {{PageParameters}} | ||
* Variable start ''letter range'' is in the form firstletter-endingletter (like A-C) or just a single letter. | * Variable start ''letter range'' is in the form firstletter-endingletter (like A-C) or just a single letter. | ||
* ''Data types'': [[INTEGER]], [[SINGLE]], [[DOUBLE]], [[LONG]], [[STRING]], [[_BIT]], [[_BYTE]], [[_INTEGER64]], [[_FLOAT]], [[_OFFSET]], [[_MEM]] | * ''Data types'': [[INTEGER]], [[SINGLE]], [[DOUBLE]], [[LONG]], [[STRING]], [[_BIT]], [[_BYTE]], [[_INTEGER64]], [[_FLOAT]], [[_OFFSET]], [[_MEM]] | ||
* Can also use the [[_UNSIGNED]] definition for positive whole [[INTEGER]] type numerical values. | * Can also use the [[_UNSIGNED]] definition for positive whole [[INTEGER]] type numerical values. | ||
Line 15: | Line 15: | ||
{{PageDescription}} | {{PageDescription}} | ||
* '''When a variable has not been defined or has no type suffix, the value defaults to a [[SINGLE]] precision floating point value.''' | * '''When a variable has not been defined or has no type suffix, the value defaults to a [[SINGLE]] precision 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). | * _DEFINE sets the [[Variable Types|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 ($)! 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 ($)! 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''' added 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. | * '''QBasic's IDE''' added 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. | ||
Line 23: | Line 23: | ||
{{PageExamples}} | {{PageExamples}} | ||
''Example:'' Defining variables that start with the letters A, B, C or F as unsigned integers, including the ''Add2'' [[FUNCTION]]. | ''Example:'' Defining variables that start with the letters A, B, C or F as unsigned integers, including the ''Add2'' [[FUNCTION]]. | ||
{{CodeStart}} | {{CodeStart}} | ||
{{Cl|_DEFINE}} A-C, F {{Cl|AS}} {{Cl|_UNSIGNED}} {{Cl|INTEGER}} | {{Cl|_DEFINE}} A-C, F {{Cl|AS}} {{Cl|_UNSIGNED}} {{Cl|INTEGER}} | ||
{{Cl|PRINT}} Add2(-1.1, -2.2) | {{Cl|PRINT}} {{Text|Add2|#55FF55}}({{Text|-1.1|#F580B1}}, {{Text|-2.2|#F580B1}}) | ||
{{Cl|END}} | {{Cl|END}} | ||
{{Cl|FUNCTION}} Add2 (one, two) | {{Cl|FUNCTION}} {{Text|Add2|#55FF55}} (one, two) | ||
Add2 = one + two | {{Text|Add2|#55FF55}} = one + two | ||
{{Cl|END FUNCTION}} | {{Cl|END FUNCTION}} | ||
{{CodeEnd}} | {{CodeEnd}} | ||
{{OutputStart}}65533 | {{OutputStart}} | ||
65533 | |||
{{OutputEnd}} | {{OutputEnd}} | ||
: ''Explanation:'' Unsigned integers can only return positive values while ordinary [[INTEGER|integers]] can also return negative values. | : ''Explanation:'' Unsigned integers can only return positive values while ordinary [[INTEGER|integers]] can also return negative values. |
Latest revision as of 20:24, 26 January 2024
_DEFINE defines a set of variable names according to their first character as a specified data type.
Syntax
Parameters
- Variable start letter range is in the form firstletter-endingletter (like A-C) or just a single letter.
- Data types: INTEGER, SINGLE, DOUBLE, LONG, STRING, _BIT, _BYTE, _INTEGER64, _FLOAT, _OFFSET, _MEM
- Can also use the _UNSIGNED definition for positive whole INTEGER type numerical values.
Description
- When a variable has not been defined or has no type suffix, the value defaults to a SINGLE precision 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 ($)! 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 added 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.
Examples
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