我猜类变量(“class var”)在存储上是真正的全局变量(即整个应用程序只有一个实例)。
但我想知道这是否属实,或者它们是线程存储(例如类似于“threadvar”)-每个线程一个实例。
有人知道吗?
编辑:更改“范围”为“存储”,因为这实际上是正确的术语,也是我要找的(感谢Barry)
我猜类变量(“class var”)在存储上是真正的全局变量(即整个应用程序只有一个实例)。
但我想知道这是否属实,或者它们是线程存储(例如类似于“threadvar”)-每个线程一个实例。
有人知道吗?
编辑:更改“范围”为“存储”,因为这实际上是正确的术语,也是我要找的(感谢Barry)
类变量根据其成员可见性属性进行作用域限定,具有全局存储而非线程存储。
作用域是一个语法概念,与从哪里可见标识符相关。这里关注的是变量的存储方式。
是的,类变量具有全局作用域。请查看RTL源代码以了解线程变量的实现细节。在Win32下,每个线程在创建时会自动分配一块内存块。这个额外的数据区域被用来包含您的线程变量。
类变量就像类一样:对于应用程序来说是全局和唯一的。