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 使模块级变量在 Sub 和 Function 内部可见。如果在模块级变量的声明中没有使用 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。