c/c++语言开发共享在输入一个语句块时是否会创建一个新的Stack Frame?


可能重复:
在C中,大括号是否作为堆栈框架?

int main() { int i=10; { int i=100; printf("%d", i); } } 

内部“{”和“}”会创建一个新的堆栈帧吗?

    这完全取决于实现,但对于那里的实现,答案是否定的。 两个i变量通常由同一堆栈帧中的两个单独变量实现,尽管在这种特定情况下,第一个i可能完全被省略。

    只有在调用子例程时才需要创建堆栈帧(在i386上)(即使它仅用于返回地址)。 在您的情况下不会发生这种情况。

    只有编译器感到痒。 当然不涉及语言要求。 更具体地说,我无法想到任何编译器会在这里推动框架的冲动,除非为大量本地人优化存储。 编译器完全能够在没有运行时帧的情况下管理名称。

    也许。 也许不是。 语言不需要它,因此编译器可以随意做任何事情。

      以上就是c/c++开发分享在输入一个语句块时是否会创建一个新的Stack Frame?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/523010.html

      (0)
      上一篇 2020年12月11日
      下一篇 2020年12月11日

      精彩推荐