Да. За константы в коде (0.01, 0.00005, 8000) -- жечь. За копипасту
и дупликацию тоже. Код можно переписать как-то так: do {
if (ZeroFrameCounter <= 0) break;
if (ThreeStrobs.SZero * SignS <= 0) break;
if (ThreeStrobs.QZero * SignQ <= 0) break;
if (fabs(ThreeStrobs.SZero) + fabs(ThreeStrobs.QZero) <= 0.5) break;
Do some actions....
} while(0);
do {
if (StopEqualFlag) break;
double const limit = 0.01 * NMult;
double const aru_ratio = ARUMultSlow1/ARUMultFast;
if (aru_ratio <= 1 - limit) break;
if (aru_ratio >= 1 + limit) break;
const unsigned WTimerLimit = 8000*(TimerForRestoreEqual - 5);
if (RestoreWTimer >= WTimerLimit) break;
Do some actions...
} while (0);
#define POW2(v) ((v)*(v))
do {
if (MainState != FourpointOnepoint) break;
if (ForcedStateChangeTimer != 1)
{
double const limit = 0.000005;
double const square = POW2(S8000_R950[0]);
if (2*square / POW2(ARUMultTotal) <= limit) break;
if (ARUTimer != 0) break;
}
Do some actions...
} while (0);
Лишние скобки, кстати, тоже вред. Если без скобок глазами и по приоритету операторов видно (например общеизвестно, что && и || имеют более низкий приоритет, чем арифметика или сдвиги и нет смысла заключать логические условия в скобки), то со скобками без редактора умеющего прыгать курсором по скобкам вообще фиг прочитаешь!