Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [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 - COMMON

Referenz-Navigation

 

Syntax A: COMMON [SHARED] Variable1[()] AS Typ [, Variable2[()] AS Typ [, ...] ]
Syntax B: COMMON [SHARED] AS Typ Variable1[()] [, Variable2[()] [, ...] ]
Typ: Anweisung
Kategorie: Bibliotheken

COMMON dimensioniert Variablen und Arrays (vgl. BefehlsreferenzeintragDIM) und macht sie mehreren Modulen zugänglich.

Seit FreeBASIC v.0.17 muss jeder Variablen mittels 'AS Typ' explizit ein Datentyp zugewiesen werden. Standarddatentypen (vgl. BefehlsreferenzeintragDEFxxx) stehen nur noch in Dialektformen wie Befehlsreferenzeintrag-lang deprecated oder -lang qb zur Verfügung.

COMMON-Arrays sind immer dynamisch. Wenn ein Array allen Modulen zugänglich gemacht werden soll, muss eine leere Parameterliste übergeben werden. Die Dimensionierung findet später über BefehlsreferenzeintragDIM oder BefehlsreferenzeintragREDIM statt.

In allen Modulen muss derselbe Bezeichner für die Variable verwendet werden; die Reihenfolge der COMMON-Anweisungen ist damit gleichgültig.

Eine ähnliche Funktion bietet BefehlsreferenzeintragEXTERN, doch während COMMON die Variable in jedem Modul deklariert und Speicher reserviert, verweist EXTERN nur auf den Speicherbereich eines anderen Moduls und definiert den Variablennamen im eigenen Modul.

Beispiel:
Compilieren Sie dieses Beispiel mit der Kommandozeile:

<$fbc> Modul1.bas Modul2.bas -x modultest.exe

<$fbc> steht dabei für Pfad und Dateiname Ihres FB-Compilers.)

' Modul1.bas

COMMON SHARED a AS INTEGER
COMMON SHARED b() AS INTEGER


REDIM b(0 TO 2) AS INTEGER
DECLARE SUB PublicSub  ()

a = 1
b(0) = 2

PublicSub

SLEEP

'========================
' Modul2.bas
COMMON SHARED b() AS INTEGER
COMMON SHARED a AS INTEGER

DECLARE SUB PublicSub  ()

PUBLIC SUB PublicSub ()
  PRINT "PublicSub in Modul2.bas"
  PRINT "a = "; a, "b(0)= "; b(0)
END SUB

Ausgabe:

PublicSub in Modul2.bas
a = 1      b(0) = 2

Das komplette Einbinden eines Codes mittels BefehlsreferenzeintragINCLUDE ist oft vorteilhafter.

Unterschiede zu QB:

Siehe auch:
BefehlsreferenzeintragDIM, BefehlsreferenzeintragSHARED, BefehlsreferenzeintragEXTERN (Module), BefehlsreferenzeintragModule (Library / DLL), BefehlsreferenzeintragGültigkeitsbereich von Variablen


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