Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Вопрос на засыпку (delphi) (https://forum.antichat.xyz/showthread.php?t=94188)

desTiny 30.11.2008 13:57

Вопрос на засыпку (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 хранит строки лениво.

De-visible 30.11.2008 14:16

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


Время: 12:46