"Проблемы перевода" новый Дельфи -> Лазарус

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

"Проблемы перевода" новый Дельфи -> Лазарус

Сообщение Alex2013 » 27.10.2019 12:24:15

Что за align ?
Код: Выделить всё

ovrVector2f = record
    x, y: Single;
  end align 4;

(То есть понятно что это "выравнивание на 4 байта" но на что эту конструкцию в лазарусе заменить ? )
Alex2013
долгожитель
 
Сообщения: 1561
Зарегистрирован: 03.04.2013 11:59:44

Re: "Проблемы перевода" новый Дельфи -> Лазарус

Сообщение Pavia » 27.10.2019 12:49:24

Попробуйте так:
Код: Выделить всё
{$A4}
ovrVector2f = record
    x, y: Single;
  end;
{$A-}
{$A+}


Добавлено спустя 2 минуты 40 секунд:
Что за align ?

Для данной конструкции align лишний.

Выравнивание полей в структурах. Но там всё хитро, если упростить то выравниваются только те которые которые равны размеру.
Аватара пользователя
Pavia
постоялец
 
Сообщения: 225
Зарегистрирован: 07.01.2011 12:46:51

Re: "Проблемы перевода" новый Дельфи -> Лазарус

Сообщение Cheb » 27.10.2019 13:51:36

А почему не
Код: Выделить всё
{$push}
{$packrecords 4}
ovrVector2f = record
    x, y: Single;
  end;
{$pop}

- вдруг там ниже по коду ещё что-то объявляется, ожидая другое выравнивание, выставленное ещё выше?
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 749
Зарегистрирован: 06.06.2005 15:54:34

Re: "Проблемы перевода" новый Дельфи -> Лазарус

Сообщение Alex2013 » 27.10.2019 14:03:51

О спасибо, а то уже "весь гугл пролистал"... :idea: Сейчас попробую!
Зы
Выше нет но ниже есть выравнивание на 8 байт .
Зы Зы
Вот же гадство !
Там есть и такой прикол align OVR_PTR_SIZE;
Нет что делать я догадался ...
Код: Выделить всё
  {$push}
  {$IFDEF CPU64BITS}
  {$packrecords 8}
  {$ENDIF}

  {$IFDEF CPU32BITS}
  {$packrecords 4}
  {$ENDIF}
...
{$pop}     

Но кривуля "мама не горюй" ...

Добавлено спустя 46 минут 28 секунд:
Кстати а packed record Объявлять нужно ?
Alex2013
долгожитель
 
Сообщения: 1561
Зарегистрирован: 03.04.2013 11:59:44

Re: "Проблемы перевода" новый Дельфи -> Лазарус

Сообщение bormant » 29.10.2019 22:31:51

packed record -- они без выравнивания, потому как «упакованы».
Или вопрос был в чем-то другом?
Аватара пользователя
bormant
постоялец
 
Сообщения: 389
Зарегистрирован: 21.03.2012 11:26:01

Re: "Проблемы перевода" новый Дельфи -> Лазарус

Сообщение Alex2013 » 30.10.2019 03:59:56

bormant писал(а):packed record -- они без выравнивания, потому как «упакованы».
Или вопрос был в чем-то другом?

Именно об этом ... спасибо !
Alex2013
долгожитель
 
Сообщения: 1561
Зарегистрирован: 03.04.2013 11:59:44


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 5

Рейтинг@Mail.ru