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

    +16

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    void keyStart(int key,void (*func)())
    {
      while(SDL_PollEvent(&keyEvent))
      {
        switch(keyEvent.type)
        {
          case SDL_KEYDOWN:
            switch(keyEvent.key.keysym.sym)
            {
              /*Выход*/
              case SDLK_ESCAPE:
              func();
              break;
              case SDLK_w:
              func();
              break;
              case SDLK_q:
              func();
              break;
              default:
              break;
            }
          break;
          default:
          break;
        }
      }
          
    }

    Функция высшего порядка, мужики. Сами знаете откуда.

    Запостил: LispGovno, 06 Ноября 2012

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

    • > default:
      > break;
      Функция высшего беспорядка.
      Ответить
      • >Функция высшего порядка.
        Поясню для неопытных (Это не вам, Bormand). По определению функция высшего порядка - функция принимающая в качестве параметра или возвращающая результатом другую функцию. Хотя тут скорее надо было назвать не func, а proc или action, ибо от него есть только сайд эффекты. Функцией язык её назвать не поворачивается.
        Ответить
    • Если бы не комментарий, можно было бы надеяться на сгенерированный код...
      Ответить
      • Ну многие генераторы умеют срать в комменты. Например когда я писал генератор рулек для астериска, он аккуратно комментировал все переходы и менюхи.
        Ответить
        • Осталось научить его материться.
          Ответить
        • Но переменные всё равно были x1 y2 z3...
          Ответить
          • внимание вопрос: что скрывается за многоточием?
            Ответить
            • Видимо, {4, |5, }6. Сообщения об ошибках забавные будут.
              Ответить
          • > Но переменные всё равно были x1 y2 z3...
            Конечно. Но с осмысленными комментариями к этим меткам весьма неплохо читается.

            Как-то так это выглядело:
            exten => 1,1,Goto(test_1,s,1) ; Главное меню
            P.S. Да и никто в здравом уме не будет править выхлоп генератора, он же все перетрет при следующей выгрузке из базы. Эти коменты туда писались для удобства отладки генератора.
            Ответить
            • На правах оффтопа.
              Обожаю астериск (хоть и не видел его с 2007-го года). Офигенная штука. Помню, написал автодозвонщик с веб-интерфейсом. Указываешь номер абонента, время; он создаёт файл дозвонки и соединяет абонента, неосмотрительно поднявшего трубку, с gsm-файлом с дикими воплями. При астерисковой агрессивной политике дозвона - офигенная штука. Как-то один упоротый клиент был подписан на час ночи, после первого дозвона в логах пошли сообщения о невозможности дозвониться.
              А ещё звонки в федеральные города через сипнет были халявными. Золотые времена.
              Ответить
    • - Да, с чувством такта у сыночка туговато, - задумчиво проговорила Екатерина Сергеевна. - Но и ты, братец, не прав. Мог бы поломаться, а подарок принять; сам говоришь, что он сделан от чистого сердца, а сердце у Дани чистое. Он же домой даже не зашёл, о тебе побежал заботиться.
      Ответить

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