【发布时间】:2013-09-15 06:10:19
【问题描述】:
sizeof运算符不计算静态成员变量的大小,所以我猜它在数据段中。我说的对吗?
【问题讨论】:
-
"C++ 将静态成员变量放在哪里,在堆栈中还是在数据段中。" - 这取决于实施。 C++ 标准不关心诸如“可执行段”之类的东西。除了“它可以是任何东西”之外,没有正确的通用答案。
-
@H2CO3 您的普遍看法是正确的,但在这种情况下,将静态成员变量放在堆栈上无法支持 C++ 语言语义。
-
@KevinA.Naudé 然后将其解读为“它可以是堆栈之外的任何东西,如果有的话”。标准中也没有“堆栈”的概念。
-
C++ 标准没有规定堆栈和数据段。那是一个执行问题。实现甚至不需要拥有一个堆栈,只要它可以完成 C++ 虚拟机所需的所有操作。
-
"sizeof算子不计算静态成员变量的大小。"是的。您剩下的问题是不合逻辑的。
标签: c++ memory-management static