Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.20;
Скачать: CL | DM;

Вниз

Непонятная мне странность.   Найти похожие ветки 

 
Unknown user ©   (2005-02-02 19:08) [0]

Привожу код:

//вычисляет индекс параграфа и символа после перемещения в направлении Dir
procedure CalcNextCharInd(Dir:TCaretMove; const NowParaInd,NowChrInd:integer;var NextParent:TTextItem; var NextParaInd,
                     NextChrInd,NextCellInd:integer);
var PrInd,ChInd,LnInd,FrInd,CelInd,
    RwInd,ClInd,ChHeight,ChWidth:integer;
    ChPos:TPoint;
    Prnt:TTextItem; Tbl:TTableItem;
label LeftRepeatCalcPara,
      RightRepeatCalcPara,
      UpRepeatCalcPara,
      DownRepeatCalcPara;
begin

 //точка 1

 Prnt:=FTextItem; PrInd:=NowParaInd;  ChInd:=NowChrInd;
 NextParent:=Prnt; NextParaInd:=PrInd; NextChrInd:=ChInd;

 //точка 2

.
.
.
end;


Вызывается эта процедура так:

 CalcNextCharInd(ADir,FTo.ParaInd,FTo.CharInd,Itm,
                 NewTo.ParaInd,NewTo.CharInd,NewTo.CellInd);

 //точка 3

и при этом NextParent,NextParaInd,NextChrInd,NextCellInd  содержат в точке 1 совершенно нереальные,огромные значения, которые не изменяются и в точке 2, хотя определены до вызова процедуры. Эти значения не случайны, при каждом новом старте они повторяются. В точке 3 вижу уже измененные настоящие значения, но для NewTo.CharInd при определенных условиях оно отличается от назначенного в CalcNextCharInd на 1. Из-за чего такое может быть?


 
Unknown user ©   (2005-02-03 09:42) [1]

У кого-то было нечто подобное?


 
Александр Иванов ©   (2005-02-03 09:44) [2]

Было - алгоритмическая ошибка


 
Unknown user ©   (2005-02-03 09:51) [3]

А как объяснить такое поведение компилятора? Если переменная не используется после записи в нее значения то в целях оптимизации компилятор может это значение и не записывать, но тут переменные используются. В чем же дело?



Страницы: 1 вся ветка

Текущий архив: 2005.02.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.058 c
14-1106730702
ghg
2005-01-26 12:11
2005.02.20
переход от процедуры к реализации этой процедуры


1-1107707313
beginnn
2005-02-06 19:28
2005.02.20
StatusBar


14-1106846392
Бугага
2005-01-27 20:19
2005.02.20
Колосков подал в отставку с поста РФС


14-1107274849
pablo
2005-02-01 19:20
2005.02.20
Декомпилятор


6-1101495209
leonidus
2004-11-26 21:53
2005.02.20
Отличия HTTP-протокола 1.0 от 1.1