1. C++ / Говнокод #17671

    +62

    1. 1
    2. 2
    3. 3
    4. 4
    if( state != !val ) 
    {
       state = !val;
    }

    Переключение. Обе переменные булевские.

    Запостил: absolut, 20 Февраля 2015

    Комментарии (25) RSS

    • if ненужен
      оставьте только 3 строку
      Ответить
      • Почему не [code=C++]state = !state[/state]? Насколько я понимаю, автор кода упоролся и нечаянно (не верю, что специально) проверил, равно ли состояние запрашиваемому изменению состояния. Или как это правильно сказать, чтобы меня не обоссали? Короче, хуйню код делает. Можно вообразить сценарий, в котором очередь событий ломается и триггер состояния не в том положении, — вот тогда такой код будет в некоторой степени уместен, если убрать лишние отрицания в условии и удостовериться в том, что в таком случае ещё и положение триггера меняться не будет. Но хуйня это всё.
        Ответить
        • Не залогинился и разметку запорол. А хуй с ним!
          Ответить
      • О БОЖЕ МОЙ, кегдан, после шарпа и хаскела ты выучил C++?
        Ответить
    • а вдруг операторы != и ! переопределены?
      Ответить
    • Может переменная по ссылке на память устройства. Тогда все верно. Ус-во может среагировать на запись в её память и при этом не так как требовлось
      Ответить
      • Или вообще как некоторые порты на авр - чтение читает один регистр, запись пишет в другой или вообще творит непотребства (инвертирует указаные биты в другом регистре, вываливает байт по spi и т.п.)
        Ответить

    Добавить комментарий