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

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    void render_tee(/*<еще аргументы>*/, vec2 dir, vec2 pos)
    {
    	vec2 direction = dir;
    	vec2 position = pos;
    
                      //еще код
    }

    вот что я нашел в сорцах игрушки TeeWorlds

    Запостил: danilissimus, 07 Января 2010

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

    • И что?
      Ответить
    • Возможно, там по ходу в этом методе direction и position изменяются, и при этом потом требуется получить доступ к оригинальным аргументам. По этому автор и скопировал аргументы в локальные переменные.
      Ответить
    • ???
      Ответить
    • не видя что находиться за
      //еще код
      назвать это говнокодом ну никак нельзя....
      даже если там они не изменеются возможно что при разрботке кто-то хотел их изменить, а потом забыл удалить эти присваивания
      Ответить
    • vec2 dir, vec2 pos надо было передать как const vec2&
      Ответить
      • +1
        Ответить
      • И получить на ровном месте тормоза из-за разыменовываний ссылки. Если значешь что делаешь, то вполне можно передавать переменные по значению. Тем более, что тут vec2 - может быть чем нибудь типа struct { char x,y; }
        Ответить
    • А "/* еще аргументы */" так и есть в оригинале? Оно бы скомпилилось?
      Ответить
      • Ааааа, ступил. Да, non-говнокод. Если раньше передавались ссылки, то всё понятно и логично, даже если нет -- возможно для страховки.
        Ответить
        • /* комментарии */
          обычный C-стиль :)
          Ответить
          • Эм, это ты к чему? Я знаю что такое комментарии. Я подумал сначала, что метод у автора void render_tee(, vec2 dir, vec2 pos). Потом дошло, что это постер вырезал аргументы.
            Ответить
    • Где сдесь С++?
      Ответить

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