User Tools

Site Tools


ugbasic:user:kw:global
Translations of this page:


ugBASIC User Manual

GLOBAL ✓

SYNTAX

   GLOBAL var[, var[, ...]]
   GLOBAL string
   GLOBAL var1[, var2[, ...] ]
   GLOBAL "string1"[, "string2"[, ...] ]

PURPOSE

When you write a program, variables are like containers that store data. Depending on where you declare them, these variables can have different “scopes,” meaning they can be accessed from different parts of your code. The GLOBAL command allows to define a variable as accessible from everywhere.

You should use GLOBAL to store parameters that do not change during program execution, to share the state between different parts of your code, and generally to improve performance, but it is important to weigh the pros and cons carefully. In general, it is a good idea to limit the use of global variables and use local variables whenever possible.

You can use the name of variables to make them global, or a string with a “pattern” to follow, to choose if a variable will be global or not. Pattern uses “wildcard” to match any letter in name of the variables.

This keyword sets up a list of variables that can be accessed from absolutely anywhere in your program. This is a simplified single command, designed to be used without the need for an explicit SHARED statement in procedure definitions.

There is a facility of using strings in procedure definitions. As with disc names, the “wild card” characters * and ? can also be included. In this case, the * character is used to mean “match this with any list of characters in the variable name, until the next control character is reached”, and the ? character means “match this with any single character in the variable name”.

GLOBAL or SHARED should be employed before the first use of the variable. Only strings may be used for this technique.

EXAMPLE

  GLOBAL var42
  GLOBAL "a*"
  GLOBAL test
  GLOBAL "a*", b, "*c"

See also the following example files:

ABBREVIATION

 Gb

AVAILABLE ON

  • Atari (400/800)
  • Atari XL/XE
  • Commodore 128 (MOS 8502)
  • Commodore 128 (Zilog Z80)
  • Commodore 64
  • Commodore 64+REU
  • TRS-80 Color Computer
  • TRS-80 Color Computer 3
  • ColecoVision
  • Amstrad CPC 664
  • Dragon 32
  • Dragon 64
  • Thomson MO5
  • Thomson MO5
  • Olivetti Prodest PC128
  • Commodore PLUS/4
  • SEGA SC-3000
  • SEGA SG-1000
  • VG-5000
  • Commodore VIC-20
  • ZX Spectrum 48

SEE ALSO

ANY PROBLEM?

If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please open an issue for this keyword on GitHub. Thank you!

POWERED BY