PRIVATE Variable: Unterschied zwischen den Versionen
Georg (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „PRIVATE Variablen werden dynamisch erzeugt und "entsorgt". Eine PRIVATE Variable kann auf zwei verschiedenen Wegen erzeugt werden: - durch die (ausführbare!…“) |
Georg (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
PRIVATE Variablen werden dynamisch erzeugt und "entsorgt". | PRIVATE Variablen werden dynamisch erzeugt und "entsorgt". | ||
Eine PRIVATE Variable kann auf | Eine PRIVATE Variable kann auf drei verschiedenen Wegen erzeugt werden: | ||
- durch die (ausführbare!) Anweisung "PRIVATE cVar" | - durch die (ausführbare!) Anweisung "PRIVATE cVar" | ||
- durch eine Wertzuweisung "cVar := 'Heute'" | - durch eine Wertzuweisung "cVar := 'Heute'" | ||
- durch die Anweisung PARAMETER in einer Funktion (die übergebenen Werte werden in die vorgegebenen Variablen übernommen) | |||
In den beiden ersten Fällen wird eine Variable mit dem Namen cVar erzeugt. | |||
FUNCTION TueIrgendEtwas | |||
LOCAL nI | |||
PRIVATE dHeute | |||
PARAMETER nEins, nZwei, lVier | |||
Innerhalb dieser Funktion sind damit vier PRIVATE Variable definiert: | |||
- dHeute | |||
- nEins | |||
- nZwei | |||
- lVier | |||
Eine PRIVATE Variable ist an ihre Position im Call-Stack gebunden. | Eine PRIVATE Variable ist an ihre Position im Call-Stack gebunden. | ||
Zeile 28: | Zeile 41: | ||
cVar wird das erste Mal in folgender Aufruf-Konstellation (= Call-Stack) angesprochen: | cVar wird das erste Mal in folgender Aufruf-Konstellation (= Call-Stack) angesprochen: | ||
Main | Main | ||
+---> ProcA | +---> ProcA | ||
: +---> ProcC | : +---> ProcC | ||
cVar wird in ProcC erzeugt und ist in dem Moment, in dem ProcC durch die RETURN-Anweisung verlassen wird, nicht mehr "adressierbar". | cVar wird in ProcC erzeugt und ist in dem Moment, in dem ProcC durch die RETURN-Anweisung verlassen wird, nicht mehr "adressierbar". | ||
Zeile 36: | Zeile 49: | ||
Wenn später über ProcB ein weiterer Aufruf von ProcC erfolgt, wird eine neue (!) PRIVATE Variable erzeugt: | Wenn später über ProcB ein weiterer Aufruf von ProcC erfolgt, wird eine neue (!) PRIVATE Variable erzeugt: | ||
Main | Main | ||
+---> ProcB | +---> ProcB | ||
: +---> ProcC | : +---> ProcC | ||
Auch für diese Variable endet ihre Lebenszeit, wenn ProcC mit RETURN verlassen wird. | Auch für diese Variable endet ihre Lebenszeit, wenn ProcC mit RETURN verlassen wird. |
Version vom 26. Mai 2013, 21:01 Uhr
PRIVATE Variablen werden dynamisch erzeugt und "entsorgt".
Eine PRIVATE Variable kann auf drei verschiedenen Wegen erzeugt werden:
- durch die (ausführbare!) Anweisung "PRIVATE cVar" - durch eine Wertzuweisung "cVar := 'Heute'" - durch die Anweisung PARAMETER in einer Funktion (die übergebenen Werte werden in die vorgegebenen Variablen übernommen)
In den beiden ersten Fällen wird eine Variable mit dem Namen cVar erzeugt.
FUNCTION TueIrgendEtwas LOCAL nI PRIVATE dHeute PARAMETER nEins, nZwei, lVier
Innerhalb dieser Funktion sind damit vier PRIVATE Variable definiert:
- dHeute - nEins - nZwei - lVier
Eine PRIVATE Variable ist an ihre Position im Call-Stack gebunden.
FUNCTION Main() ProcA() ProcB() RETURN(.T.) FUNCTION ProcA() ProcC() ... RETURN(.T.) FUNCTION ProcB() ProcC() ... RETURN(.T.) FUNCTION ProcC() cVar := "Hugo" RETURN(.T.)
cVar wird das erste Mal in folgender Aufruf-Konstellation (= Call-Stack) angesprochen:
Main +---> ProcA : +---> ProcC
cVar wird in ProcC erzeugt und ist in dem Moment, in dem ProcC durch die RETURN-Anweisung verlassen wird, nicht mehr "adressierbar".
Wenn später über ProcB ein weiterer Aufruf von ProcC erfolgt, wird eine neue (!) PRIVATE Variable erzeugt:
Main +---> ProcB : +---> ProcC
Auch für diese Variable endet ihre Lebenszeit, wenn ProcC mit RETURN verlassen wird.