PDA

Просмотр полной версии : Вопрос на засыпку (delphi)


desTiny
30.11.2008, 13:57
По-моему, интересный факт...

Что выведет код (компилятор не юзать):
procedure TForm1.FormCreate(Sender: TObject);
var
s1, s2: String;
begin
s1 := 'test';
s1 := s1+'a'; //чтобы можно было изменять строку в асм коде ниже - ибо иначе она, по-сути, остаётся константой
s2 := s1;
asm
mov eax, s2
mov byte ptr [eax],65
end;
showmessage(s2);
showmessage(s1);
end;

Ответ ниже
_______________________











Ответ:

Aesta
Aesta

Объяснение - delphi хранит строки лениво.

De-visible
30.11.2008, 14:16
хм...если не ошибюсь, то я про это прочитал давно, в книге "О чем не пишут в книгах по DELPHI" раздел подводные камни....