据我所知,}
实际上包含一些操作,比如破坏堆栈分配的对象,因为当一个对象的析构函数中发生了一些错误时,VS.NET指向我关闭Curly Braces甚至你可以使用F11
进入它,看看已被调用的析构函数中发生了什么。但是,我注意到{
也是一个操作,如果我尝试使用F11
进入它,VS.NET告诉我它需要memset.asm
文件以便继续调试
{
内发生了什么?
答案 0 :(得分:2)
花括号确定范围和寿命。在一对花括号内创建的对象在它们之外是不可访问的。它们不是代码;但是,由于在退出对象时可能会释放这些对象,因此编译器可能会因为结束大括号而生成代码。
关于踩到开口花括号,你实际上是步入花括号内的第一个可执行代码行。这行代码可以解释为什么调试器试图进入memset.asm。