代码之家  ›  专栏  ›  技术社区  ›  Graza

Delphi类变量是否具有全局或线程本地存储?

  •  6
  • Graza  · 技术社区  · 16 年前

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

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

    有人知道吗?

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

    3 回复  |  直到 16 年前
        1
  •  7
  •   Daniel    16 年前

    是的,类变量是全局范围的。在rtl源中查看如何实现三个advar的详细信息。在win32下,每个线程都可以在创建线程时自动分配一个内存块。这个额外的数据区域是用来包含三个副词的。

        2
  •  9
  •   Barry Kelly    16 年前

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

    作用域是一个句法概念,它与从何处可见的标识符有关。这里关注的是变量的存储。

        3
  •  1
  •   a.delphi.developer    16 年前

    类变量就像类:全局的,对于应用程序是唯一的。