"goto" C 中的行为:如何处理符号?

"goto" behavior in C : how symbols are handled?

我想知道,在下面的代码中:

{
    int i = 42;
    goto end;
}
end:

当我们到达 end: 时,符号 i 的状态是什么(我们会在调试器中看到什么)?它是否仍然存在,即使我们超出了范围?有标准行为还是依赖于编译器?

为了示例,我们假设代码是使用带调试符号的 gcc 编译的。

此外,C++ 中的行为是否相同?

谢谢。

在一个块中声明的变量将"live"仅在该块中(是否使用goto无关紧要)。

此行为在 c++ 中是相同的

状态是...不可见(超出范围)。