1. Си / Говнокод #10549

    +136

    1. 1
    2. 2
    /* eventData1 - аргумент функции, причем он не может быть меньше 1 по определению. */
    CS_OF=(eventData1-1)/2==(eventData1-1)*0.5;

    Запостил: klaks, 04 Июня 2012

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

    • проверял математику?
      Ответить
    • OF - Overflow Flag?
      Ответить
    • eventData1 какого типа?
      для чего это используется: проверка переполнения, четности или что-то еще?
      Ответить
    • OF - odd flag, а весь код - аналог OF = (eventData1 % 2) == 1 или даже OF = eventData1 & 1?
      Ответить
      • верно! eventData1 - это int.
        Ответить
        • тогда зачем "-1"?
          это помимо кастования в дабл.
          Ответить
          • если бы это было оправдано, то здесь возможно этой строчки бы не было :) проверка четности осуществляется N & 1. при этом, чтобы проверить НЕчетность автор кода считает, что нужно сделать (N - 1) & 1 :) а просто сделать отрицание было не судьба...
            Ответить
    • Есть версия (может туплю, не помню условия привидения типов в C), что это проверка на неопределённое стандартом округление в большую или меньшую сторону на конкретной машине.
      Ответить
      • даже если это выражение и содержит данную семантику, то остальной код, который я тут не выкладывал, говорит о том, что автор сделал это случайно :) вообще эту программу портировать на другой компилятор невозможно, если не считать за портирование полное ее переписывание :)
        Ответить
      • > привидения
        [гремит цепями]
        Ответить

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