gpt4 book ai didi

c++ - 大括号中发生了什么

转载 作者:行者123 更新时间:2023-11-28 02:16:16 26 4
gpt4 key购买 nike

据我所知, 实际上包含一些操作,例如销毁堆栈分配的对象,因为当对象的析构函数中发生错误时,VS.NET 会指向 Curly 的关闭大括号,甚至您可以使用 F11 进入它并查看已调用的析构函数中发生了什么。但是,我注意到 { 也是一个操作,如果我尝试使用 F11 进入它,VS.NET 告诉我它需要 memset。 asm 文件以便继续调试。

{ 内部到底发生了什么?

最佳答案

花括号建立作用域和生命周期。在一对花括号内创建的对象在它们之外是不可访问的。它们不是代码;但是,由于对象可能会在您退出时被释放,因此编译器可能会生成代码作为右大括号的结果。

关于单步进入左大括号,您实际上是单步进入大括号内的第一行可执行代码。该行代码可以解释为什么调试器试图进入 memset.asm。

关于c++ - 大括号中发生了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33952773/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com