Школоло / Говнокод #5912 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
TLine = record
    X1, Y1, X2, Y2: smallint;
    Attr: array [0 .. 7] of byte;
  end;

{rail:
    Attr[0]: Quality
    Attr[1]: ********
             ||Weight of Station
             ||10 = Station; 11 = Big Station
    Attr[2]: Count of passengers
    Real count = Attr[2] * (Attr[1] and $3F) / 63;
    Attr[3]: ****0100
             ||||
             |||for Selected
             ||for "crossrail"
             for MoveEndSel
  ===========================================
   bridge:
    Attr[0]: Quality
    Attr[1]: ********
                   ||
                   Z of ends
    Attr[2]:
    Attr[3]: ****1100
  ===========================================
   3d-object:
    Attr[0]: Number
    Attr[1-2]: RandSeed
    Attr[3]: ****1111
  ===========================================
  Attr[4..7] reserved, but not used

  }

Это я был вынужден написать себе такую памятку после попыток понять свой код, начатый на 3 курсе.
В будущем я учёл свои ошибки при написании http://govnokod.ru/5261

Запостил: TarasB TarasB, (Updated )

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

    • Ну да, "640 кб хватит каждому".

      Я с Турбо Паскаля начинал, поэтому и приучился по битам всякие флаги распихивать. Потом, после перехода на Дельфи, не сразу отучился.
      Ответить
        • У меня там были не только флаги, могущие принимать только 2 значения.
          Ответить
            • младшие 4 бита - тип линии, старшие - выделена ли, выделен ли 1 конец, выделен ли 2 конец, и ещё один бит не помню на что

              И как тут множества помогут?
              Ответить
              • пересечь и привести к enum, например
                а паскале с bitfields нормально не поработаешь
                Ответить
    • Да тут весь код о БИТоёбстве, байтоёбство тут на этом фоне и не заметно вовсе.
      Ответить
      • оно уже из-за smallint будет тормозить, на теснящиеся биты можно и не смотреть
        Ответить
  • Мы все учились понемногу, чему-нибудь и как-нибудь 🙂
    Ответить
  • если уж так экономите память (ну мало ли - вдруг очень надо) - хотя бы packed record.
    кстати, для задачи, где подобных объектов может быть 50-100М, придется еще не так извращаться... ну или забить на 32-битную реализацию.
    Ответить

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

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8