7

我的猜测是类变量(“class var”)在存储中是真正的全局变量(即整个应用程序的一个实例)。

但我想知道是否是这种情况,或者它们是否是存储中的线程(例如,类似于“threadvar”) - 每个线程一次实例。

有人知道吗?

编辑:将“范围”更改为“存储”,因为这实际上是正确的术语,也是我所追求的(感谢巴里)

4

3 回答 3

11

类变量根据其成员可见性属性进行作用域,并且具有全局存储,而不是线程存储。

范围是一个句法概念,与从何处可见的标识符有关。这里关心的是变量的存储。

于 2008-09-17T13:14:52.253 回答
8

是的,类变量是全局范围的。查看 RTL 源代码,了解如何实现 threadvars 的详细信息。在 Win32 下,每个线程都可以在创建线程时自动分配一块内存。这个额外的数据区域用于包含您的线程变量。

于 2008-09-17T11:23:32.070 回答
1

类变量就像类一样:对应用程序来说是全局且唯一的。

于 2008-09-18T00:43:19.870 回答