卷曲大括号发生了什么

时间:2015-11-27 08:03:48

标签: c++ c++11 visual-studio-2013 curly-braces

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

{内发生了什么?

1 个答案:

答案 0 :(得分:2)

花括号确定范围和寿命。在一对花括号内创建的对象在它们之外是不可访问的。它们不是代码;但是,由于在退出对象时可能会释放这些对象,因此编译器可能会因为结束大括号而生成代码。

关于踩到开口花括号,你实际上是步入花括号内的第一个可执行代码行。这行代码可以解释为什么调试器试图进入memset.asm。