Skip to content

COMMON


变量声明和作用域修饰符

语法

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

说明

声明在代码模块之间共享的变量,包括将被编译为静态库和动态库(DLL)的模块。

使用该变量的所有其他代码模块中必须有匹配的 Common 语句。

Common 变量不能被初始化。

Common 数组始终是可变长度的,必须用空参数列表 () 定义,其维度在之后的 DimRedim 语句中设置。

Common 变量不能是具有显式或隐式构造函数或析构函数的用户自定义类型的实例。

可选参数 Shared 使变量成为全局变量,可以在 subfunction 内部以及模块级别使用。

示例

start GeSHi

vb
'' common1.bas

Declare Sub initme()

Common Shared foo() As Double

ReDim foo(0 To 2)

initme()

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

end GeSHi

start GeSHi

vb
'' common2.bas

Common Shared foo() As Double

Sub initme()
  foo(0) = 4*Atn(1)
  foo(1) = foo(0)/3
  foo(2) = foo(1)*2
End Sub

end GeSHi

将两个文件编译如下:

fbc common1.bas common2.bas

运行 common1 产生如下输出:

 3.141592653589793           1.047197551196598           2.094395102393195

平台差异

  • Windows 不支持 Common 与动态库(使用 -dll 或 -dylib 编译)一起使用。

与 QB 的差异

  • 数组将始终是可变长度的。
  • 不需要 blockname,且必须删除,因为声明顺序不再重要,只有符号名称才重要。
  • Common 不允许在使用 Chain 链接程序时保留某些变量的值。

另请参阅

  • Dim
  • Erase
  • Extern
  • Lbound
  • Redim
  • Preserve
  • Shared
  • Static
  • Ubound
  • Var

返回 目录

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系