Задать вопрос
@list_get

Как сильно загружается МК при проверке длинного условия?

Добрый день. Подскажите эффективно ли использовать одно длинное условие? или стоит разбить на более мелкие составляющие. МК freescale kinetis kl25 cortex - m0+
В качестве примера (x1 >= n <= x2 && x3 > x4)
  • Вопрос задан
  • 392 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
RiseOfDeath
@RiseOfDeath
Диванный эксперт.
Армы (как и, наверное, все остальные процессоры) так и так не умеют сравнивать больше, чем два числа. Это условие в любом случае будет разбито компилятором на несколько.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@massol
МК все равно, этим занимается компилятор, он его и разобьет.
Ответ написан
Комментировать
veydlin
@veydlin
Мне никогда не жалко средств на свое любопытство
Надо иногда почитывать учебники по языку программирования, на котором пишите
Раньше бы ваш вопрос был актуален, со старыми компиляторами, сейчас же код
int I;
I = I + 1;
if(I < 5){ }


Ничем не отличается от вашей оригинальной записи такого вида:
int I;
if(++I < 5){ }


Компилятор все подведет под одно.
Надеюсь, ответил на ваш вопрос х)
Ответ написан
Комментировать
Несмотря на то, что компилятор разобьет условие на несколько сравнений, вычисления будут произведены полностью, потому как, ЕМНИП, в С отсутствуют ленивые вычисления. В вашем же случае, если первое условие ложно, второе значение вычислять не имеет смысла, а по-этому, можно и разбить условие на вложенные if.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы