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

Вниз

Кто это может объяснить?   Найти похожие ветки 

 
sndanil ©   (2002-05-20 15:05) [0]

Тут такая ситуация... ну в общем кто-нить объясните плз. что не так... заодно скажите, что у вас получилось...

procedure TForm1.Button1Click(Sender: TObject);
var x,y :integer;
begin
y:=0;
try
x:=1 div y;
ShowMessage("2");
except
ShowMessage("4");
end;
end;


для тех у кого вывелось окошко с номером 4 сообщаю: у меня выводится только 2... то же самое происходит и когда использую тип реал с нормальным делением... исключение генерится только когда делаю например так...
y:=0;
try
IntToStr(1 div y);
ShowMessage("2");
except
ShowMessage("4");
end;


 
MBo ©   (2002-05-20 15:14) [1]

это уже обсуждалось. x вычисляется на этапе компиляции


 
McSimm ©   (2002-05-20 15:18) [2]

В данном случае выражение просто не вычисляется из-за оптимизации.


 
sndanil ©   (2002-05-20 15:34) [3]

И чему равен этот Х?... и если можно подробней плз. ... и почему выражение не вычисляется?


 
Shaman_Naydak ©   (2002-05-20 16:11) [4]

x ты нигде дальше не используешь..
вырожденную переменную компилятор убил..
Хочешь, отключи оптимизацию в настройках компиляции.
Честно говоря, я не вижу смысла в том, что писать заведомо бессмысленный код.


 
Andrey007   (2002-05-20 16:25) [5]

2 sndanil: вместо ShowMessage("2"); попробуйте ShowMessage(IntToStr(x));


 
sndanil ©   (2002-05-21 10:07) [6]

Так в том-то и дело, что убирал я оптимизацию... не помогло... и переменная дальше используется...


 
sndanil ©   (2002-05-21 10:09) [7]

оптимизацию убирал... переменная дальше используется...


 
McSimm ©   (2002-05-21 10:26) [8]

>оптимизацию убирал...
После смены этой настройки надо делать Build

>переменная дальше используется...
смотря как используется. Используется ли ее значение, присваиваимое при делении?
Обрати внимание на синие точки после компиляции. На строке с делением ее нет. Это значит, что оптимизатор просто исключил этот код из-за бессмысленности.

Совет Andrey007 (20.05.02 16:25) пробовал? Сразу получишь желанный Exception.





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

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

Наверх




Память: 0.48 MB
Время: 0.014 c
3-6938
alex11111
2002-05-14 16:48
2002.06.03
Проблема с увязкой MySQLQuery с DBGrid


8-7134
.: Joiro :.
2002-01-07 21:49
2002.06.03
Проблема с заливкой градиентом по периметру. HELP!


14-7209
dlp
2002-04-28 11:17
2002.06.03
Помогите с алгоритмом!


14-7220
VEG
2002-04-28 20:29
2002.06.03
Где ошибка в закрузке анимированного курсора?


4-7259
a_k_v
2002-03-27 13:49
2002.06.03
Перехват вызовов API функций из екзешника в NE формате