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 - PRIVATE (Schlüsselwort)

Referenz-Navigation

 

Syntax: OPTION PRIVATE
Typ: Schlüsselwort
Kategorie: Klassen

OPTION PRIVATE bestimmt, dass BefehlsreferenzeintragSUBs und BefehlsreferenzeintragFUNCTIONs standardmäßig BefehlsreferenzeintragPRIVATE deklariert werden. Die Option kann nur bis FreeBASIC v0.16 eingesetzt werden, oder in entsprechend höheren Versionen, die mit der Kommandozeilenoption Befehlsreferenzeintrag-lang deprecated compiliert wurden! Wird mit FreeBASIC v0.17 unter der Option -lang fb compiliert, so ist OPTION PRIVATE nicht mehr zulässig! Geben Sie in diesem Fall explizit an, wenn eine Prozedur PRIVATE sein soll.
Siehe dazu auch die BefehlsreferenzeintragFB-Dialektformen.

Ein Programm kann aus mehreren Modulen, d. h. aus mehreren BAS-Dateien bestehen. Welche Dateien zum Projekt gehören sollen, wird dem Compiler in der Kommandozeile mitgeteilt:

fbc Optionen Dateiname1 Dateiname2 ...

Siehe dazu BefehlsreferenzeintragDer Compiler.

Aus einem bestimmten Modul können dabei immer alle Prozeduren aufgerufen werden, die sich in diesem befinden. Prozeduren aus anderen Modulen können nur dann aufgerufen werden, wenn diese Prozeduren BefehlsreferenzeintragPUBLIC sind. BefehlsreferenzeintragPRIVATE Prozeduren hingegen können nur aus dem Modul heraus aufgerufen werden, in dem sie sich befinden.

Es dürfen in mehreren Modulen mehrere Prozeduren mit demselben Bezeichner vorhanden sein, sofern diese PRIVATE sind.

Beispiel:
Ein Projekt besteht aus den Modulen A und B.
Das Modul A besitzt die Prozeduren Priv1 (PRIVATE), Priv2 (PRIVATE) und Pub1 (PUBLIC).
Das Modul B besitzt die Prozeduren Priv1 (PRIVATE), Priv2 (PRIVATE) und Pub2 (PUBLIC).
Wird gerade Code aus Modul A ausgeführt, so können Priv1 aus A, Priv2 aus A, Pub1 aus A und Pub2 aus B aufgerufen werden. Priv1 aus B und Priv2 aus B können nicht aufgerufen werden.
Wird gerade Code aus Modul B ausgeführt, so können Priv1 aus B, Priv2 aus B, Pub1 aus A und Pub2 aus B aufgerufen werden. Priv1 aus A und Priv2 aus A können nicht aufgerufen werden.

OPTION PRIVATE gibt an, dass SUBs und FUNCTIONs standardmäßig PRIVATE sein sollen. Wenn Sie OPTION PRIVATE verwenden, müssen Sie explizit die Klausel PUBLIC verwenden, wenn eine Prozedur PUBLIC sein soll.

Beispiel:
Compilieren Sie diese Dateien mit folgender Programmzeile:

fbc PrivatePublicTest1.bas PrivatePublicTest2.bas

' PrivatePublicTest1.bas
#LANG "deprecated"
OPTION PRIVATE

DECLARE SUB PrivateSub ()
DECLARE SUB PublicSub  ()

PublicSub
PrivateSub
SLEEP

SUB PrivateSub ()
  PRINT "PrivateSub in PrivatePublicTest1.bas"
END SUB

'-----------------------------------------'

' PrivatePublicTest2.bas
#LANG "deprecated"
OPTION PRIVATE
DECLARE SUB PrivateSub ()
DECLARE SUB PublicSub  ()

SUB PrivateSub ()
  PRINT "PrivateSub in PrivatePublicTest2.bas"
END SUB

PUBLIC SUB PublicSub ()
  PRINT "PublicSub in PivatePublicTest2.bas
  PrivateSub
END SUB

Unterschiede zu QB: neu in FreeBASIC

Unterschiede zu früheren Versionen von FreeBASIC:
Die Option ist nur bis FreeBASIC v0.16 erlaubt. Seit FreeBASIC v0.17 ist diese Option nur noch zulässig, wenn mit der Kommandozeilenoption Befehlsreferenzeintrag-lang deprecated compiliert wurde.

Siehe auch:
BefehlsreferenzeintragPRIVATE, BefehlsreferenzeintragPUBLIC, Befehlsreferenzeintrag__FB_OPTION_PRIVATE__BefehlsreferenzeintragOPTION, BefehlsreferenzeintragDECLARE, BefehlsreferenzeintragSUB, BefehlsreferenzeintragFUNCTION, BefehlsreferenzeintragVerschiedenes


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