C ++标准术语用于堆/堆叠[关闭](C++ standard terminology for he

2019-10-30 00:31发布

似乎有大约应使用一些术语上的不确定性。 似乎是视图不同点:

  1. 有些人喜欢用堆和栈是指字节的位置
  2. 其他人坚持认为那些“堆”和“堆叠”的术语不应该C中使用++,而是喜欢“自动存储持续时间”的术语。

但很明显的程序员使用一组术语和标准使用另一种。 但是,应该用什么样的条件? 为什么? 还有,他们的意思是不同的东西的问题? 但似乎在## C ++中freenode的信道使用堆叠/堆术语时是恒定的分歧。 现在,我们已经得出结论,持续时间!=位置,但我们仍然要决定什么是首选的术语。

Answer 1:

“堆”和“堆叠”仅仅是由C ++标准中规定的一般概念实际实现。

该标准不关心你在哪里存储您的对象,它关心这些对象的生命周期,所以它谈论“自动存储时间”。

但是编译器通常使用堆栈的工具实现这一点。 然而,正如在评论中指出,并非每一个具有自动持续对象位于堆栈上。 类成员具有自动存储持续时间,所属对象是否是在堆栈中。

对于很多常见的用法,这两个可以没有真正造成混乱互换。 在堆栈上的对象具有自动存储时间,他们通常谈论的“自动存储时间”,以及时想到什么。

只要你不要求什么是栈上分配的,当它在堆上,我不是太大惊小怪你使用这个术语。



Answer 2:

堆栈是对象存储具有自动存储持续时间(一个抽象的概念)的实现。 同样地,对于堆和动态存储持续时间。



文章来源: C++ standard terminology for heap/stack [closed]