Форум: "Потрепаться";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];
ВнизWatches Найти похожие ветки
← →
Lenza (2003-07-07 12:39) [0]Отчего даже в такой простой процедуре, как эта, при вызове переменной I в Watches может выдаваться Inaccessible Value?
procedure TForm1.Button1Click(Sender: TObject);
var I: Integer;
begin
I:=0;
Caption := IntToStr(I);
end;
На самом деле все немного сложнее, здорово обламывает. Где-то в опциях напорол, что-ли? Аж плакать хочется..(
← →
Skier (2003-07-07 12:41) [1]Попробуй оптимизацию отключить.
← →
Lenza (2003-07-07 13:03) [2]Неа, не помогает. Да и раньше с оптимизацией работало все нормалек.
Если брейкпойнт здесь: Caption := IntToStr(I);, оптимизации ещё нет.
← →
MBo (2003-07-07 13:12) [3]переменная I далее не используется, вот и нет нужды компилятору хранить ее в стеке - в D5 так получается:
xor esi,esi //обнуление - никакого обращения к переменной, да и самой ее физически нет
...
mov eax, esi
call IntToStr
← →
Lenza (2003-07-07 13:26) [4]
> MBo
Используется же!: Caption := IntToStr(I)...
Но уже не важно, причина - LocalSymbols.
Спасибо всем за участие.)
← →
Lenza (2003-07-07 13:29) [5]
> MBo
Тут D7? На D5 я вообще никогда не работал.
Да и при оптимизации-то он пишет, что ..due to Optimization.)
← →
pasha676 (2003-07-07 13:31) [6]
> Используется же!:
Нет. Фактически нет.
> Но уже не важно, причина - LocalSymbols.
Нет. Просто глобальные переменные не оптимизируються. Причина в том, что строчки
I:=0;
Caption := IntToStr(I);
Компилятор фактически преобразует в Caption := IntToStr(0);
О чем и писал МВо.
← →
MBo (2003-07-07 13:33) [7]>Используется же!:
Компилятор прекрасно знает, что программе нужно показать не любое число, а 0, вот и делает это достойным образом
← →
Lenza (2003-07-07 13:39) [8]Все мы умные и красивые.)
procedure TForm1.Button1Click(Sender: TObject);
var I: Integer; //это - моя первая глобальная переменная
begin
I:=0;
Caption := IntToStr(I);//а поставить здесь брейкпойнт, у меня
//почему-то при включеной оптимизации и включенной опции
//Project|Options|Compiler|Debugging|LocalSymbols - BM_SETCHECK
//показывает I:=0, спасибо Борланду за это:)
end;
← →
Lenza (2003-07-07 13:40) [9]
> MBo © (07.07.03 13:33)
Во-во, спасибо Борладу за это;)
← →
Lenza (2003-07-07 13:44) [10]Просто до этого у меня по невнимательности проблема возникла.
На самом деле, разницы для него нет: for I:=0 to 5 do или I:=0 - все кажет, спасибо всем!)
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c