Skip to content

SHARED

来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgShared 最后更新: 2021-09-29

指定变量在整个模块中可见的变量声明修饰符。

语法

Dim Shared ...
Redim Shared ...
Common Shared ...
Static Shared ...
[Static] Var Shared ...

说明

Shared 使模块级变量在 SubFunction 内部可见。如果在模块级变量的声明中没有使用 Shared,该变量仅对该文件中的模块级代码可见。

注意(对于 Shared 变量,不包括 Common 变量):

  • 通常 Shared 变量只能用常量值初始化(其起始值在程序开始时在 .data 段中,在任何代码运行之前设置)。
  • 第一个例外是可变长度字符串类型的 Shared 变量,即使用常量字符串也永远不能初始化。
  • 第二个例外是具有构造函数(即使是隐式的)的用户自定义类型的 Shared 变量,可以用非常量值初始化。

要从局部作用域块访问全局命名空间中定义的 Shared 变量的重复符号,请添加一个或最好两个点作为前缀:.SomeSymbol 或最好 ..SomeSymbol

示例

vb
' Compile with -lang qb or fblite
'$lang: "qb"

Declare Sub MySub

Dim Shared x As Integer
Dim y As Integer

x = 10
y = 5

MySub

Sub MySub
    Print "x is "; x 'this will report 10 as it is shared
    Print "y is "; y 'this will not report 5 because it is not shared
End Sub

与 QB 的区别

  • 不支持在作用域块(函数、子程序、if/then 和循环)内部使用 Shared 语句。请改在主程序中使用 Dim|Redim|Common|Static Shared

另请参阅

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