Array ( )
Вход:




Главная | OpenGL | GLSL | AI | Сеть | Примеры | Библиотека

Примеры программирования: do { … } while (false);






Позвольте мне поделиться одной из моих любимых идиом программирования: ... do { ... } while(false);

Я подцепил её у друга, который узнал её от друзей, которые, вероятно, видели это в книге. Она может выглядеть бесполезной, но это очень хороший механизм обработки исключений с низкими затратами и высокой производительностью. Типичное приложение с этим кодом может выглядеть так:


// setup
int status = 0;

do {
   // preconditions
   status = doSomething();
   if (status) break;
   status = doSomethingElse();
   if (status) break;

   // computation
   status = doWhatYouWantedToInTheFirstPlace();
} while (false);

// cleanup
return status;




Без механизма DWF тот же код требует требует либо применения исключений, дублирования кода очистки, либо написания глубоко вложенных блоков if, пока не будут удовлетворены все условия. Хотя DWF изначально может показаться немного неортодоксальным, код его на самом деле очень ясный, понятный и полезный.










Комментарии:

Войдите, чтобы оставить комментарий:












Яндекс.Метрика
 Яндекс цитирования.