CONST: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 6: Line 6:




{{Parameters}}
{{PageParameters}}
* {{Parameter|constantName}} is the constant name or list of names assigned by the programmer.
* {{Parameter|constantName}} is the constant name or list of names assigned by the programmer.
* {{Parameter|value}} is the value to initialize the global constant which cannot change once defined.
* {{Parameter|value}} is the value to initialize the global constant which cannot change once defined.
Line 15: Line 15:
{{PageDescription}}
{{PageDescription}}
* The {{Parameter|constantName}} does not have to include a type suffix. The datatype is automatically infered by the compiler using the {{Parameter|value}}.
* The {{Parameter|constantName}} does not have to include a type suffix. The datatype is automatically infered by the compiler using the {{Parameter|value}}.
* Constant values cannot reference a variable, [[SUB]] or [[FUNCTION]] return values when defined.
* Constant values cannot reference a variable or user [[FUNCTION]] return value when defined. However, other (already known) constants and most of the internal char, math or color functions can be used, such as [[CHR$]], [[EXP]] or [[_RGBA32]].
** The exception to the above are color functions [[_RGB32]] and [[_RGBA32]], which can be used in a CONST statement. See ''Example 2'' below.
* Constants cannot be reassigned values. They retain the same value throughout all of the program procedures.
* Constants cannot be reassigned values. They retain the same value throughout all of the program procedures.
* Constants defined in module-level code have [[SHARED|shared]] scope, so they can also be used in [[SUB]] or [[FUNCTION]] procedures.
* Constants defined in module-level code have [[SHARED|shared]] scope, so they can also be used in [[SUB]] or [[FUNCTION]] procedures.
* Constants defined in [[SUB]] or [[FUNCTION]] procedures are local to those procedures.
* Constants defined in [[SUB]] or [[FUNCTION]] procedures are local to those procedures.
* [[CLEAR]] will not affect or change constant values.
* [[CLEAR]] will not affect or change constant values.
* Since '''QB64-PE v4.0.0''' a huge list of preset [[Constants]] is available in every program.




Line 61: Line 61:
{{Cl|PRINT}} "Hello World"
{{Cl|PRINT}} "Hello World"
{{CodeEnd}}
{{CodeEnd}}


{{PageSeeAlso}}
{{PageSeeAlso}}
* [[DIM]], [[SHARED]]
* [[DIM]], [[SHARED]]
* [[STATIC]], [[COMMON]]
* [[STATIC]], [[COMMON]]
* [[_PI]], [[_RGB32]], [[_RGBA32]]
* [[Constants]] (Defined by the Compiler)
* [http://doc.pcsoft.fr/en-US/?6510001 Windows 32 API constant values]
* [http://doc.pcsoft.fr/en-US/?6510001 Windows 32 API constant values]




{{PageNavigation}}
{{PageNavigation}}

Latest revision as of 18:50, 18 November 2024

The CONST statement globally defines one or more named numeric or string values which will not change while the program is running.


Syntax

CONST constantName = value[, ...]


Parameters

  • constantName is the constant name or list of names assigned by the programmer.
  • value is the value to initialize the global constant which cannot change once defined.
    • If constantName specifies a numeric type, value must be a numeric expression containing literals and other constants.
    • If constantName specifies a string type, the value must be a literal value.


Description

  • The constantName does not have to include a type suffix. The datatype is automatically infered by the compiler using the value.
  • Constant values cannot reference a variable or user FUNCTION return value when defined. However, other (already known) constants and most of the internal char, math or color functions can be used, such as CHR$, EXP or _RGBA32.
  • Constants cannot be reassigned values. They retain the same value throughout all of the program procedures.
  • Constants defined in module-level code have shared scope, so they can also be used in SUB or FUNCTION procedures.
  • Constants defined in SUB or FUNCTION procedures are local to those procedures.
  • CLEAR will not affect or change constant values.
  • Since QB64-PE v4.0.0 a huge list of preset Constants is available in every program.


Examples

Example 1: Display the circumference and area of circles:

' Declare a numeric constant approximately equal to the ratio of a circle's
' circumference to its diameter:
CONST PI = 3.141593

' Declare some string constants:
CONST circumferenceText = "The circumference of the circle is"
CONST areaText = "The area of the circle is"

DO
    INPUT "Enter the radius of a circle or zero to quit"; radius
    IF radius = 0 THEN END
    PRINT circumferenceText; 2 * PI * radius
    PRINT areaText; PI * radius * radius ' radius squared
    PRINT
LOOP
Enter the radius of a circle or zero to quit? 10
The circumference of the circle is 62.83186
The area of the circle is 314.1593

Enter the radius of a circle or zero to quit? 123.456
The circumference of the circle is 775.697
The area of the circle is 47882.23

Enter the radius of a circle or zero to quit? 0
Explanation: PI cannot change as it is a mathematical constant so it is fitting to define it as a constant. Trying to change PI will result in a calculation error.


Example 2: Using _RGB32 to set a constant's value.

CONST Red = _RGB32(255,0,0)

COLOR Red
PRINT "Hello World"


See also



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link