Компилятор пропускает команду...
Не первый раз сталкиваюсь с проблемой в Delphi, когда компилятор в процессе отладки (да и вообще) пропускает команду. Например в
procedure UpdateGraph(Anum, Number:integer);
var
...
num,i,j,maxi,jend:integer;
...
begin
...
i:=0;
j:=0;
...
Он переменной i присваивает ноль, а переменной j нет. В отладчике вообще пропускает эту строчку. При этом не ругается, как будто все в порядке... никак не пойму в чем дело?
Буду благодарен за совет!
Может ты ету переменную не используеш и компилятор просто оптимизировал код ?
Цитата: Rebbit
Может ты ету переменную не используеш и компилятор просто оптимизировал код ?
как раз наоборот, после того как я ей присваиваю 0 (как в примере), с ней происходят другие операции (тоже присвоения), которые также игнорируются... :(
не вырывай из контекста, приведи фрагмент кода полностью(по возможности) с использованием этой переменной.
Цитата: HelloEverybody
как раз наоборот, после того как я ей присваиваю 0 (как в примере), с ней происходят другие операции (тоже присвоения), которые также игнорируются... :(
Присваивать можеш сколько угодно. Если ее не читаеш запросто соптимизирует :)
Или вот например
j := 0
j := 1 + 2 + 3; //не или чтото другое
a := j
Почему бы не пропустить первое присваивание ? Ведь первое присвоеное значение сразу же теряется. Попробуй просто отключить оптимизацыю. (Кажися в делфе такое можно). Вот и увидиш в этом ли причина :)
HelloEverybody, если ты не проводишь никаких операций с данной переменной, кроме единственного присвоения он может ее воспринять просто как числовую константу, т.е. просто подставить число, которое ты присвоил данной переменной везде в код, где используется сама переменная. Да и на самом деле, зачем выделять в стеке место под константу? :)
Обрати внимание, если поработал оптимизатор, в отладчике вместо значения переменной должно быть примерно что-то:
Varaible j inaccessible due the optimization process.
Большое спасибо всем! Причина действительно была в оптимизаторе кода!
Цитата: Rebbit
.........Попробуй просто отключить оптимизацыю. (Кажися в делфе такое можно).....
Либо в параметрах проекта, либо
{$O-} //Отключаем оптимизацию
{$O+} // Включаем оптимизацию