Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Referenz - SCOPE

Referenz-Navigation

 

Syntax:

SCOPE
  ' Programmcode
END SCOPE

Typ: Anweisung
Kategorie: Deklaration

Ein SCOPE-Block ermöglicht es, Variablen temporär zu (re)dimensionieren und zu benutzen.
Wenn eine Variable innerhalb einer SCOPE-Struktur dimensioniert wird, kann sie nur bis zum Ende des SCOPE-Blocks verwendet werden. Besteht die Variable bereits außerhalb des Blocks und wird im Block neu dimensioniert, dann wird die alte Variable bis zum Ende des Blocks ignoriert - auf ihren Wert kann innerhalb des Blocks nicht zugegriffen werden. Am Ende des Blocks wird der Wert der alten Variablen wiederhergestellt.

Alle Anweisungen innerhalb eines SCOPE-Blocks vor der Redimensionierung einer Variable werden auf die Variable zugreifen, die außerhalb des Blocks definiert wurde.

SCOPEs dürfen bis zu einem beliebigen Grad ineinander verschachtelt sein. Sie können sowohl auf Modulebene als auch auf Prozedurebene verwendet werden; siehe BefehlsreferenzeintragProzeduren.

Hinweis: Alle Schleifen (BefehlsreferenzeintragDO ... LOOP, BefehlsreferenzeintragWHILE ... WEND, BefehlsreferenzeintragFOR ... NEXT), Bedingungen (BefehlsreferenzeintragIF ... THEN, BefehlsreferenzeintragSELECT CASE) sowie BefehlsreferenzeintragWITH, BefehlsreferenzeintragTYPE, BefehlsreferenzeintragUNION und BefehlsreferenzeintragENUM erzeugen intern einen eigenen SCOPE-Block.

Beispiel 1:

DIM AS INTEGER x = 1, y = 2
PRINT "Initialisierung:"
PRINT "x ="; x; ", "; "y ="; y
PRINT

SCOPE
   x += 1
   y += 1
   PRINT "x und y werden im ersten SCOPE um eins erhoeht."
   PRINT "x ="; x; ", "; "y ="; y
   PRINT

   DIM x AS INTEGER = 11
   PRINT "Erstes SCOPE, Redimensionierung von x"
   PRINT "x ="; x; ", "; "y ="; y
   PRINT

   SCOPE
      DIM y AS INTEGER = 12
      PRINT "Zweites SCOPE, Redimensionierung von y"
      PRINT "x ="; x; ", "; "y ="; y
      PRINT
   END SCOPE

END SCOPE

PRINT "nach den SCOPEs"
PRINT "x ="; x; ", "; "y ="; y
SLEEP

Ausgabe:

Initialisierung:
x = 1, y = 2

x und y werden im ersten SCOPE um eins erhoeht.
x = 2, y = 3

Erstes SCOPE, Redimensionierung von x
x = 11, y = 3

Zweites SCOPE, Redimensionierung von y
x = 11, y = 12

nach den SCOPEs
x = 2, y = 3

Unterschiede zu QB: neu in FreeBASIC

Unterschiede zu früheren Versionen von FreeBASIC:

Unterschiede unter den FB-Dialektformen:
In der Dialektform Befehlsreferenzeintrag-lang qb und -lang fblite steht SCOPE nicht zur Verfügung.

Siehe auch:
BefehlsreferenzeintragDIM, BefehlsreferenzeintragREDIM, BefehlsreferenzeintragDatentypen und Deklarationen, BefehlsreferenzeintragGültigkeitsbereich von Variablen


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 30.07.2007 von Redakteurnemored angelegt.
  • Die aktuellste Version wurde am 01.08.2024 von Redakteurnemored gespeichert.
  Versionen Versionen