Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > unpacked array of Extended


Автор: CDEater 28.5.2008, 23:20
Обычный array of Extended занимает по 10 байт на число, что вызывает тормоза из-за невыровненности операндов.
Хочу массив из Extended, но чтобы каждое число было выровнено на границу 8 байт.
Добавление слова unpacked вызывает ошибку компиляции, использование {$A-} ничего не изменяет.
Как бы получить желаемое наиболее прямым и естественным путём?

Автор: Alexeis 28.5.2008, 23:39
CDEater, можно попробовать поместить Extended в Record, который по дефолту выравнивается на 8 байт.

Добавлено через 1 минуту и 22 секунды
Или использовать 8ми байтовый Double.

Автор: CDEater 29.5.2008, 03:00
Типа, вот так?
array of record X: Extended; end;
Спасибо, работает.  
Только придётся лазить по всей проге и приписывать суффикс ".X" ко всем обращениям к массиву...  :(

Автор: aktuba 29.5.2008, 03:08
А если вместо массива класс сделать?

Автор: CDEater 29.5.2008, 03:16
Вообще-то речь шла об ускорении вычислений.  Класс тут совсем не катит.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)