Ausführbare und nicht ausführbare Deklarationen
nicht ausführbare Deklarationen
Die Anweisungen LOCAL, STATIC und FIELD sind Anweisungen für den Compiler und können nur zur Compile-Zeit ausgewertet werden.
Sie müssen (für STATIC) im Programm vor jeder ausführbaren Anweisung, bzw. in Funktionen (gilt für alle drei) vor jeder ausführbaren Anweisung geschrieben werden.
Der Compiler wertet die Deklarationen aus und erzeugt entsprechende Verweise für diese Variablen.
ausführbare Deklarationen
PUBLIC und PRIVATE sind ausführbare Anweisungen und können an jeder beliebigen Stelle im Programm-Code auftauchen, nicht jedoch ausserhalb von Funktionen:
PUBLIC cIrgendWas FUNCTION Main() ... RETURN(.T.)
wird vom Compiler mit dieser Fehlermeldung quittiert:
warning XBT0106: Procedure MAIN does not end with RETURN error XBT0247: Redefinition of function or procedure Main
Da die PUBLIC Anweisung vor der ersten Funktion erscheint, versucht der Compiler, implizit eine Funktion MAIN zu erzeugen, die jedoch nicht mit RETURN endet, und die tatsächliche Funktion MAIN wird damit zu einer Redefinition.
Grund: eine PUBLIC oder PRIVATE Anweisung, die ausserhalb von Funktionen steht, kann nicht ausgeführt werden und ist somit sinnlos.