Const

Const is a keyword used after a Subprog or a Func declaration to define the type of arguments transmitted to the called code.

The declaration of the arguments is not mandatory and allows you to transmit parameters with a variable type to subprograms. If they are present, the declarations must be placed just after the Subprog or Func declaration.

Const arguments are transmitted through pointers, but modifications of the variable are not allowed as they are in read-only mode. The consequence of the pointer transmission is that no constants or expressions are allowed in the corresponding Call, func, or fmet: it would create an error at execution time.

Syntax

Const DECLARATION1 NAME(DIMENSIONS)Const DECLARATION2 NAME(SIZE)(DIMENSIONS)Const Instance NAME Using CLASSConst Instance NAME(DIMENSIONS) Using CLASS

The dimensions and the index ranges can be omitted wherever the parenthesis is present. The dimension and index ranges are defined by the calling program. Additionally, the first range of an index can be given alone, and the total number of values is defined by the calling program.

Examples

# Example of declarationsSubprog STORE_VALUES(KEYS,VALUES,IDENTIFIER,GLOBAL_STATUS)Const Char KEYS(20)(1..) : # Array of 20 characters starting at index 1Const Decimal VALUES(,) : # 2 dimensions matrix of decimalsConst Char IDENTIFIER()Const Integer GLOBAL_STATUS : # Integer# First example that brings to an errorCall MY_ERROR(123) : # Generates an error : constants or expressions are not allowed....EndSubprog MY_ERROR(MYVALUE)Const Decimal MYVALUE...End# Second example that brings to an errorLocal Decimal PRICEPRICE=123Call OTHER_ERROR(PRICE)....EndSubprog OTHER_ERROR(MYVALUE)Const Decimal MYVALUE...MYVALUE=124 : # Generates an error : the variable is read-only...End

See also

Global, Local, Variable, Value, Tinyint, Libelle, Date, Shortint, Integer, Float, Double, Decimal, Char, Schar, Clbfile, Blbfile, Uuident, Datetime, Instance.