【问题标题】:C++ call stack not in standard?C ++调用堆栈不是标准的?
【发布时间】:2011-10-16 02:30:27
【问题描述】:

C++ 标准是否讨论调用堆栈?在 C++ 中如何使用栈和堆是众所周知的,但我正在阅读标准并没有发现它。

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1905.pdf

这是由编译器实现留下的,但每个人都同意,还是我在浏览文档时错过了什么?

【问题讨论】:

  • 隐形否决票?请解释为什么这个问题无效...

标签: c++ stack standards


【解决方案1】:

标准中没有提到。堆栈和堆都不是。该标准描述了 C++ 程序的语法和语义(行为)。实现选择按照自己的意愿实现。

但是,当您看到对函数的调用必须如何表现时,并没有真正广泛的选择。必须有某种堆栈来存储局部变量!

【讨论】:

  • 只有在递归调用时才需要,否则每个函数可以为其变量有一个固定的位置。
  • @Nikolay:这符合“某种堆栈”类别:)
  • 嗯,是的。或某种“环形缓冲区”类别,或... :)
【解决方案2】:

标准谈论storage duration而不是堆栈和堆。这些如何实施取决于......实施。

【讨论】:

    猜你喜欢
    • 2011-09-25
    • 2015-01-02
    • 1970-01-01
    • 2017-02-19
    • 2015-12-24
    • 2012-01-03
    • 2014-09-13
    • 1970-01-01
    • 2021-01-09
    相关资源
    最近更新 更多