Няшная / Говнокод #13690 Ссылка на оригинал

0

  1. 1
hq->rd_period = (i = hq->rd_period+1) != 0 ? i : 1;

что именно хотел сказать автор, неизвестно. предполагаю что `while (!++hq->rd_period);`

Запостил: Dummy00001 Dummy00001, (Updated )

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

    • Будет очень странно если нет) Иммитация пустого цикла)
      Ответить
      • ++hq->rd_period;
        if (!hq->rd_period)
            hq->rd_period = 1;
        Интересно, зачем он избавляется от нуля?
        Ответить
        • в данном случае, хез. на ноль в коде нигде не проверяется. с числом вообще ничего не делается, оно только в выходящие сообщения пишется (рядом с настоящим sequence number, который может быть нулем).

          типичное случай скипания нуля это sequence numbers в сетевых сообщениях. во многих системах нулевой номер имеет спец значение (например вне сессии, out-of-bound, seqno reset, etc). от туда-то я и знаю трюк с while'ом.
          Ответить
          • >трюк с while'ом
            Ну и нафига нужны эти трюки? Такое же гавно как и исходный код, если не хуже. Такое ощущение, что С-программистам не платят за строчки, а наоборот дают каждый месяц лимит строк и как хочешь, так и укладывайся в него.
            Ответить
            • трюк с while'ом это стандартная парадигма увеличения счетчика с перепрыгиванием через ноль в сетевых приблудах. сетевики знают эту парадигму. ГК слишком излишен и там надо остановится и задуматся что и почему.

              вариант который bormand пытался написать, тоже используется, но типично пишется так:
              seqno++;
              if (!seqno) seqno++;


              с парадигмами прикладных областей бесполезно спорить. они просто есть. (и да, они часто есть говно.)
              Ответить

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

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8