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 хранит строки лениво.
Что выведет код (компилятор не юзать):
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 хранит строки лениво.