Lade...
 

Variable

Variable

Variablen in InstantView® haben folgende Eigenschaften:

untypisiert
Variablen haben keinen Typ. Variable sind - ebenso wie Stackelemente - Container und können alle in InstantView® möglichen Werte halten.

Initialialwert
Vor der ersten Wertzuweisung halten alle Variablen den Wert INVALID  

Hierarchiche Scopes
Variablen haben einen Gültigkeitsbereich (Scope):

Scope Definition mit Hinweis
globaler Scope die Variable ist in der gesamten Anwendung bekannt GlobalVar  
Modul Scope die Variable ist in dem Modul bekannt, wo sie definiert wurde, und in allen von diesem Modul abgeleiteten Modulen (Vererbung) Var Wert am Beginn des Scopes immer INVALID
StaticVar
erst ab DLL Version 4.6.0.000000
hält den zuletzt zugewiesenen Wert
lokale Scopes die Variable existiert nur innerhalb eines Makros oder {  } - Blocks
Lokale Scopes können untereinander eine Hierarchie bilden (nested { } - Blocks)
LocalVar
erst ab DLL Version 4.6.0.170276
vererbte Variablen sind in unterschiedlichen Modulen unabhängig voneinander = halten unterschiedliche Werte
StaticVar
erst ab DLL Version 4.6.0.000000
vererbte Variablen sind in unterschiedlichen Modulen identisch = halten den gleichen Wert

Variablen mit gleichem Namen in unterschiedlichen Scopes verdecken die Variable in den übergeordneten Scopes.

Statisch oder nicht-statisch
Im Modul-Scope unterscheiden sich statische und nicht-statische Variablen, wenn von einem Basis-Modul mindestens zwei Module abgeleitet sind.
Bei einer statischen Variablen beziehen sich alle Ableitungen immer auf den gleichen Wert. Für nicht-statische Variablen besitzt jedes Modul eine eigene, von den "Geschwister-Modulen" unabhängige Instanz.
Lokale Variablen haben beim Eintritt in ihren Scope den Wert INVALID. Innerhalb des Scopes zugewiesene Werte werden beim Verlassen des Scopes "vergessen".
Lokale statische Variablen halten den zuletzt zugewiesenen Wert auch nach dem Verlassen des Scopes.

Transaktionsorientiert
Globale und Module-Scope Variablen werden beim Abbruch einer Transaktion auf den letzten, vor Beginn der Transaktion zugewiesenen Wert zurückgesetzt.
Lokale Variablen sind nicht transaktionsorientiert (wegen der kurzen Lebensdauer nicht sinnvoll!).

Deklaration einer Variablen

Aufruf

Wertzuweisung

Increment / Decrement

Vergleich mit Variablen in C++