Я понял (трудный путь, час отладки), что мой компилятор Delphi 2010 с оптимизацией отключен (и выравнивание записи по 1 байт) не выделяет память для неиспользуемых переменных. Если они определяются как:Как заставить компилятор Delphi выделить память для неиспользуемых переменных
var x,y,z:longint; a1,a2,a3:whatever;
и у получает неиспользованная (на самом деле, я снял форму из проекта временно, который ссылается на переменную, которая исключительно), то г присваивается адрес х + 4. Ничего, кроме того, что у меня много кода, который теперь будет смешивать z с a1. Можно ли это контролировать с помощью какого-то переключателя? Спасибо.
Это не представляется возможным. Пожалуйста, добавьте [mcve], который демонстрирует * код, который будет смешивать z с a1 *, если вы не используете 'y'. –
Независимо от того, что вы делаете, чтобы полагаться на последовательное назначение смещения адреса, хрупкое и плохо продуманное. Укажите свою реальную проблему о том, что вы пытаетесь сделать, и получите гораздо более читаемую и поддерживаемую программу. –
Thx all. 1) мои проверенные примеры приведены в встроенном ассемблере, и, несомненно, приращение указателя байта в pascal произведет тот же эффект, но если нет никаких переключателей для принудительного распределения, это не имеет значения; 2), плохо продуманные по вашим стандартам, возможно, но я ненавижу префикс записей записей, поэтому я передаю указатель на 1-й var в ряд некоторых моих процедур; эта привычка не является ни яростью, ни фетишем; просто, меньше слов в моем коде, более читабельным и поддерживаемым для меня, вот как работает мой мозг; нет такой вещи, как «реальная проблема» – miodrag