Na de ha nem akarunk bevezetni segédváltozót (és miért is tennénk, plusz memória és semmi szükség rá), valamint megegyezhetünk abban, hogy a kódok sorrendjét nemigazán lehet felcserélni (lévén, hogy az if (0) {} utáni felszabadításnak ugyanúgy meg kell történnie), nagyon más megoldást nem látok annál, hogy
void bizbasz(...)
{
// blabla, ha hiba van goto err
if (0) {
err:
// tralala
}
// asdfasdf
}
helyett ezt írod:
void bizbasz(...)
{
// blabla, ha hiba van goto err
goto hurra;
err:
// tralala
hurra:
// asdfasdf
}
Amivel effektíve ugyanott vagy, kétlem, hogy az if (0) helyett más fordulna be oda. Egyik ocsmány, mert vezérlési szerkezetbe ugrasz, másik ocsmány, mert goto halmok hegyeit tartalmazza. Ezen kívül már csak a kódduplikálás van.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™