global { [+] Name [= Static | [= Function] Type | [+] Name = Static | [+] Type }, ...
Global variables and micros are declared in Classes can be accessed by other methods and classes. A method or class can access Class globals via a Use or Alter declaration. Methods can implicitly use Globals in the class where it is a member.
Global micros are defined by coding a static value; excluding the type. Variables are typed. If a variable has a base type, an initial value may also be coded. Variables may also declare array ranges (See Array). Globals can not be pointers. A global pointer can be declared within a managed structured type that is the type of a global variable.
The optional leading plus sign determines the access capability of class globals outside the class. Normally Global variables in a class module are only readable externally. A lead plus sign indicates they can be written by a method external to the class as well.
Global variables are declared only in Classes and are cleaned before a program starts and are drained upon completion. Globals can also be initialized with a Function procedure. The Global initialization period is called Elaboration and the drain process upon completion is called Liberation.
Global variables are statically initialized once before a program is run. Any variables with static values are initialized. String variables are initialized to null if no value is given. If a user type has static initializers on a Class declaration, variables of that type will also be initialized (See Class).
String variables are initialized to null if no value is given. Scalar numeric variables are initialized to zero. If a structure type has initial field values on a Class declaration, variables of that type will also be initialized (See Class).
Dynamic deallocation must be explicitly performed on global variables with the Drain method to deallocate memory used by the subject variable (See Drain).