{{htmlmetatags>metatag-robots=()
metatag-title=(GLOBAL | ugBASIC User Manual)
metatag-keywords=(ugBASIC,Commodore 64,Commodore PLUS/4,ZX Spectrum)
metatag-description=(Manual page for GLOBAL)
metatag-media-og:image=(:ugbasic:logo-ugbasic-fb.png)
metatag-og:title=(GLOBAL | ugBASIC User Manual)
metatag-og:description=(Manual page for GLOBAL)
}}
====== 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:
* ''[[https://github.com/spotlessmind1975/ugbasic/tree/main/examples/procedures_global_01.bas|procedures_global_01.bas]]''
* ''[[https://github.com/spotlessmind1975/ugbasic/tree/main/examples/procedures_global_02.bas|procedures_global_02.bas]]''
==== 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 ====
[[SHARED]]
==== ANY PROBLEM? ====
If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please [[https://github.com/spotlessmind1975/ugbasic/issues/new?title=ISSUE ON GLOBAL|open an issue]] for this keyword on GitHub. Thank you!===== POWERED BY =====
[[:ugbasic:user:index|{{ :ugbasic:user:logo-ugbasic.png?nolink&600 |}}]]