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

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

有人知道吗?

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

有帮助吗?

解决方案

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

其他提示

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

范围是一个语法概念,与哪些标识符在哪里可见有关。这里关心的是变量的存储。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top