GLBasic Benutzerhandbuch

Main sections

LOCAL


LOCAL var#$, var#$[]
GLOBAL var#$, var#$[]
LOCAL var#=wert#, var#=wert(), ...

a#$ = LOCAL var#$
LOCAL a#$ = GLOBAL a#$
...



LOCAL definiert lokale Variablen in einer SUB / dem Hauptprogramm. Auf diese Variablen kann nur innerhalb dieser SUB zugegriffen werden. Nach dem Verlassen der SUB ist der Speicherplatz dieser Variablen wieder frei.

GLOBAL greift auf globale, namensgleiche, lokale Variablen in einer SUB zu.

Ohne Verwendung von LOCAL/GLOBAL vor einem Funktionsargument wird immer zuerst versucht die LOCALe zu verwenden. Ist diese nicht mit LOCAL definiert worden, wird die GLOBALe verwendet.

Definiert man eine Variable explizit als GLOBAL:
GLOBAL var#$

so wird die Verwendung dieser Variable dem Compiler mitgeteilt. Er gibt dann keine Warnung mehr aus: "Variable might be unassigned", wenn die Variable z.B. bei MOUSESTATE oder GETSCREENSIZE verwendet wird.


Sample:
 
LOCAL text$ // Local in "Hauptprogramm"

text$="LOCAL_MAIN" // LOCAL text$
GLOBAL text$="GLOBAL" // GLOBAL text$

GOSUB show
PRINT text$, 100, 150
SHOWSCREEN
MOUSEWAIT
END

// ------------------------------------------------------------- //
// -=# SHOW #=-
// ------------------------------------------------------------- //
SUB show:
LOCAL text$="LOCAL_SUB"
// Erstellen und definieren von LOCALen Feldern:
LOCAL array[]; DIM array[5]

PRINT text$, 100, 50
// ist gleich mit:
// PRINT LOCAL text$, 100, 50
PRINT GLOBAL text$, 100, 100
ENDSUB // SHOW

See also...