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

    +136

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (init) {
    } else {
      // thread is not initialized, run first time local state setup
      ...
    }

    Запостил: raorn, 11 Мая 2010

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

    • а как надо то?
      Ответить
    • По этому коду не определишь, говнокод ли это, мало контекста
      -
      Ответить
      • По слову thread все-таки, кажется, говнокод и race.
        Ответить
    • не говно.

      tail оптимизация для улучшения i-cache footprint и branch prediction.

      если пишется так:
      if (init) {} else { /* редко исполняемый код */ }
      /* основной код */

      то комплер это сгенерит в нечто такое:

      if (init) {
      label1:
      /* основной код */
      return;
      }
      /* редко исполняемый код */
      goto label1;

      ЗЫ хотя по правилу преждевременной оптимизации (aka premature optimization is the root of all evil (c) Хоар.) тоже может быть говном.
      Ответить
      • а если автор имел в виду что-то типа if(init) { /*to do/* } else { /* ........ */ } и оставил для дальнейшей разработки?
        Ответить

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