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

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    if (cur1!=NULL){
    	while(cur1!=NULL){
    	...
    }

    Вот такие вот потрясающие проверки в духе "нуавдруг?"

    Запостил: tony, 22 Июня 2010

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

    • 1. где здесь C++ ?
      2. что не так в коде?
      Ответить
    • бред, cur1 может меняться в теле цикла.

      1. cur1 может быть нулём - тогда игнорируем весь блок.
      2. если cur1 не ноль - ок, входим в цикл.
      3. цикл
      4. цикл
      5. ставим cur1 в ноль, чтобы остановить цикл.
      6. выходим из цикла и из блока.

      этакий do { } while() получается...
      Ответить
      • if лишний в любом случае, так-то.
        Ответить
        • не написано, что идёт после while'а. после него может быть какой-то код ведь.
          Ответить
        • откуда ты знаешь что он лишний? неизвестно что в коде вместо многоточия, может там после цикла еще что-то. Если здесь что и не так, то это while вместо do, но это говном сложно назвать.
          Ответить
    • if (cur1!=NULL){
      	     while(cur1!=NULL){
      	          ...
                             }
                             ...
                        }else{
                            ...
      }

      Где лишний иф?
      Ответить
    • Черт, это cur1, а я брежу наяву и все читал его как curl. Ну, думал, химичат с хендлом.
      Ответить
    • А кто ни будь учитывает что до того как начнется вайл, i может изменится за счет того что прога много-поточная и другой тред в этом самый момент пакостит с cur1? Так что нифига не говнкод, а скорее всего проверка на этот самый пакостинг. Вайл убьется, а вместо него запустится обработчик хреновой_ситуации. В то время как внутри вайла, может либо проставлятся флаг который запретит обработчику запуск, либо же вобще перейдет куда ни будь подальше. Тред создаст , а сам убьется например.
      if (cur1!=NULL){
      while(cur1!=NULL){ something(); return 0;}
      call_mega_fucking_data_corruption_handle r(); return 0;
      }
      Ответить
      • Не, отмазка не катит.
        Другой тред может вообще посредине всего напакостить, обычными проверками не обойдемся, надо синхронизироваться.
        Ответить

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