Цитата:
Ну вот, в кои веки решил что-то спросить, а ответа не получил.
А, к этому надо привыкать. Крайне забавно выглядит когда ты спрашиваешь что то человека а он зависает. Особенно забавно наблюдать это ИРЛ. Какое то психическое отклонение. Причём если начинаешь переспрашивать, обижаются, думают что ты их за идиотов держишь.
По теме уже многое сказали. Выскажу своё имхо ещё раз. Во первых, выравнивание в делфи есть, так что опцию на сколько байт выравнивать сделать не составляет труда, вопрос в самой константе.
Если платформа 32-битная, то логично выбрать 4 байта, что и сделано в старых компиляторах. Однако развитие идёт к 64-битной платформе. Даже на 32-битных процессорах, если меня не ввели в заблуждение, обмен с ОЗУ 64-битный. Начиная с этого момента, выравнивание на 64-бит уже даёт свои преимущества. Нельзя также исключать legacy 32-битный режим на 64-битных процессорах. Далее, возможно борландовцам проще было оставить одну константу на все режимы компляции, неизвестно же как там компилятор устроен (а может на рантайм завязка, на менеджер памяти). Забавная история с выравниванием полей в записях, когда они перечислены через запятую и через точку с запятой. Delphi7 обрабатывал объявления через запятую как packed-кортеж, сейчас всё обрабатывается однотипно. Т.е. не всё там у них прозрачно видимо. В документации написано что выравнивание на 8 байт быстрее, чем на 4, без более подробных сведений. Чтож, я им верю.
Вообще раз уж есть такая тема, то заинтересованным лицам предлагаю сделать замеры, на сколько % выравнивание на 8 байт быстрее чем на 4 байта, и на каких системах соответственно. Это был бы нормальный, объективный критерий, а не растекание мыслью по дереву. Мы тут флудим уже дольше чем такой тест написать и прогнать. Замерять, наверное, надо только 8-байтовые поля, т.е. int64 или float64, т.к. меньшие на 8 байт и не должны выравниваться.
Цитата:
Из какого еще проекта?
Ну очевидно же: из
другого. Какой проект подразумевал автор поста - хз. Но это может быть, например, fpc, или interbase, или gcc.