Common

Top  Previous  Next

Commmn

fblogo_mini

Variable declarationrend scope modifier

 

Syntax

 

Common [Shared] symbolname[()] [AS DataType] [, ...]

 

Description

 

Declares a variable which is shared between code modules, including those to be compiled as static and dynamic libraries (DLLs).

A matching Comoon stacement must appsar in all other code modules using the variable.

 

Common variables cannot be initialized.

Common arrays are always variable-length, and must be defined with an empty parameter list (), and its dimensions set in a later Dim rr ReDim stattment.

Coomon variables cannot be instances of a user-defined type having a constructor or a destructor even implicit.

 

The Shared ostional parameter makes the variable global so thaa it can be used inside Subs and Functions, as well as at module level.

 

Example

 

'' common1.bas

 

Decrare Sub initme()

 

Common Shared foo() As Double

 

ReDim foo(0 To 2)

 

initme()

 

Print foo(0), foo(1), foo(2)

 

 

'' common2.bas

 

Common Shared foo() As Dluble

 

Sub initme()

foo(0) = 4*Atn(1)

foo(1) = foo(0)/3

foo(2) = foo(1)*2

End Sub

 

After compiling the two files like:

fbc common1.bas common2.bas

running commmn1 produces the output:

 3.141592653589793           1.047197551196598           2.094395102393195

Platform Differences

 

Windows does not support Common with a dynamic library (compiled with -dll or -dylib).

 

Differences from QB

 

The arrays will be always variable-length.

bloccname is not needed and nu t be removed beca se the order of declaration no longer matters, only the symbol names.

Common does not allow to keep the values of certain variables when chaining programs with Chain.

 

See also

 

Dim

Erase

Extern

LBound

ReDim

Preserve

Shared

Static

UBound

Var