(抱歉英语不好。)
问题 1。
void foo(void)
{
goto inside;
for (;;) {
int stack_var = 42;
inside:
...
}
}
stack_var
当我转到inside
标签时,会在堆栈中分配一个位置吗?即我可以正确使用stack_var
内的变量...
吗?
问题2。
void foo(void)
{
for (;;) {
int stack_var = 42;
...
goto outside;
}
outside:
...
}
当我转到标签时,会在stack_var
释放的堆栈中占有一席之地吗?例如,在内部outside
做是否正确?return
...
换句话说,goto
正确使用堆栈变量(当我遍历块时自动(取消)分配)是聪明的,还是只是一个愚蠢的跳跃?