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

    +165

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    //где-то в далеком-далеком хедере
    typedef long SystemID;
    
    // в коде
    long FARPASCAL sb_ConfigureSystem(SystemID s)
    {
                 .......
                 System * sys = (System*)s;
                 ......
    }

    И в таком духе весь проект.

    Запостил: DarthBobr, 30 Июня 2010

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

    • И что?
      Ответить
      • Вероятно, речь про то, что в 64-битных windows-системах long составляет всего 32 бита.

        К тому же вообще странной выглядит операция, где поинтеру присваевается значение "ID". Хотя принципиально в этом ничего плохого нет.
        Ответить
        • К (System*) чего только не приводится в этом проекте. И айдишники, и левые указатели и даже где-то такое видел:
          return (System*)1L;
          Принципиально плохого, конечно, в этом нет, пока не попробуешь где-нибудь воспользоваться таким вот указателем на объект System и дебагать пол проекта - почему же указатель инвалидный)
          Ответить
    • Человек не знает про intptr_t
      Ответить
    • ptrdiff_t, size_t
      Ответить

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