(Извините за плохой английский.)
Вопрос 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
умный для правильной работы со стековыми переменными (автоматическое (деление) при прохождении через блоки), или это просто глупый прыжок?