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 - STATIC (Anweisung)

Referenz-Navigation

 

Syntax A: STATIC Variable AS Typ [= einfacherAusdruck] [,Variable AS Typ [= einfacherAusdruck] [, ...] ]
Syntax B: STATIC AS Typ Variable [= einfacherAusdruck] [, Variable [= einfacherAusdruck] [, ...] ]
Syntax C: STATIC Array([Start TO] Ende [, [Start TO] Ende] [, ...]) AS Typ [= {einfacherAusdruck [, ...] }]
Typ: Anweisung
Kategorie: Speicherverwaltung

STATIC deklariert Variablen oder Arrays einer lokalen BefehlsreferenzeintragProzedur und speichert sie, wenn die Prozedur beendet wird, sodass ihr Wert beim nächsten Aufruf der Prozedur wieder verfügbar ist. Die Anweisung arbeitet damit ähnlich wie BefehlsreferenzeintragDIM, nur dass der Wert für den nächsten Prozeduraufruf erhalten bleibt.

Beispiel:

DECLARE SUB zaehl

zaehl
zaehl
SLEEP

SUB zaehl
   STATIC i AS INTEGER
   i += 1
  PRINT "Dies ist der " & i & ". Aufruf."
END SUB

Ausgabe:

Dies ist der 1. Aufruf.
Dies ist der 2. Aufruf.

STATIC kann auch den Wert einer Variable initialisieren. In diesem Fall wird die Wertzuweisung des Initiators nur beim ersten Aufruf der Prozedur vorgenommen. Bei späteren Aufrufen wird mit dem gespeicherten Wert weitergearbeitet.

Beispiel:

FUNCTION produkt (param AS INTEGER) AS INTEGER
   STATIC wert AS INTEGER = 1

   wert *= param
   RETURN wert
END FUNCTION

PRINT produkt(3)
PRINT produkt(4)
PRINT produkt(5)
SLEEP

Ausgabe:

 3
 12
 60

Anmerkung:
Seit FreeBASIC v0.16 kann STATIC auch auf Modulebene (außerhalb von SUBs/FUNCTIONs) angewandt werden. So verwendet arbeitet es genauso wie BefehlsreferenzeintragDIM.

Unterschiede zu QB:
In QB kann STATIC nur in Prozeduren und innerhalb DEF FN verwendet werden.

Unterschiede zu früheren Versionen von FreeBASIC:
Seit FreeBASIC v0.16 kann STATIC auch auf Modulebene (außerhalb von SUBs/FUNCTIONs) angewandt werden.

Siehe auch:
BefehlsreferenzeintragSTATIC (Klausel), BefehlsreferenzeintragSTATIC (Meta), BefehlsreferenzeintragSTATIC (Schlüsselwort), BefehlsreferenzeintragSTATIC (UDT), BefehlsreferenzeintragDIM, BefehlsreferenzeintragSHARED


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