Мы часто пишем некоторые функции, которые имеют более одной точки выхода (т.е. return
в C). В то же время, при выходе из функции, для некоторых общих работ, таких как очистка ресурсов, мы хотим реализовать их только один раз, а не реализовывать их в каждой точке выхода. Как правило, мы можем достичь нашего желания, используя goto следующим образом:
void f()
{
...
...{..{... if(exit_cond) goto f_exit; }..}..
...
f_exit:
some general work such as cleanup
}
Я думаю, что использование goto здесь приемлемо, и я знаю, что многие люди соглашаются на использование goto здесь. Просто из любопытства, существует ли какой-нибудь элегантный способ аккуратного выхода из функции без использования goto в C?