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

    −11

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    /* some code */
    
    if (some_var == 0){
         goto label;
    }
    
    label: foo();
    
    /* some code */

    любителям goto посвящается

    Запостил: starborn, 29 Августа 2015

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

    • А что, позволяет избежать дупликации кода, когда в if и else надо выполнить одно и то же.
      Ответить
      • новая функция? вынести одинаковый код за пределы if? убрать вообще ненужный if ?
        в целом в данном случае прикол не в том, что использовали goto, а в том КАК его использовали ))
        Ответить
        • Добро пожаловать на говнокодач, тут зелёным отмечают [color=green]правильные мысли[/green].
          Ответить
      • новый оператор - `anyway`?
        Ответить
        • Что-то мне намекает, что между if'ом и goto когда-то был код, который это самое goto перепрыгивало...
          Ответить
          • или генерёное. "ragel state machine compiler" в подобном стиле код генерит.
            Ответить
        • Напомнило молодость, вспомнил что в мотороловском асме, на восьмибитных контроллерах, среди прочих операторов условного перехода был один особенный - BRA (branch always). И относился он именно к условным переходам, безусловные тоже были и шли отдельным независимым разделом в даташите.
          Ответить

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