LINUX.ORG.RU

История изменений

Исправление monk, (текущая версия) :

то некоторые извращенцы do{}while(0) используют и прерывают основной код через break.

Ещё можно

if (((a = malloc(100500)) || myerror("a"))
    && ((g = do_some_stuff_with_a(a)) || myerror("g"))
    && ((b = ...) || myerror("b")))
{
   ....
   тут вся программа
}
free(a);
free(b);
free(g);

Исходная версия monk, :

то некоторые извращенцы do{}while(0) используют и прерывают основной код через break.

Ещё можно

if ((a = malloc(100500)) || myerror("a")
    && (g = do_some_stuff_with_a(a)) || myerror("g")
    && (b = ...) || myerror("b"))
{
   ....
   тут вся программа
}
free(a);
free(b);
free(g);