![]() |
![]() ![]() ![]() ![]() |
|
Быстрый способ обмена значений в 2х переменныхDelphi , Синтаксис , Типы и ПеременныеАвтор: http://www.swissdelphicenter.ch
procedure SwapVars1(var u, v; Size: Integer);
var
x: Pointer;
begin
GetMem(x, Size);
try
System.move(u, x^, Size);
System.move(v, u, Size);
System.move(x^, v, Size);
finally
FreeMem(x);
end;
end;
procedure SwapVars2(var Source, Dest; Size: Integer);
// By Mike Heydon, mheydon@eoh.co.za
begin
asm
push edi
push esi
mov esi,Source
mov edi,Dest
mov ecx,Size
cld
@1:
mov al,[edi]
xchg [esi],al
inc si
stosb
loop @1
pop esi
pop edi
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
SwapVars1(X1, X2, SizeOf(Integer));
end;
Программный код предлагает два способа обмена значениями двух переменных в Delphi. Первый метод ( Второй метод ( Оба метода работают правильно, но имеют различные характеристики. Первый метод более типичен для Delphi, в то время как второй метод использует ассемблерный код, что может сделать его менее переносимым. Однако для операции обмена, где Вот пример использования этих процедур: В этом примере Быстрый способ обмена значений в двух переменных - это процедура на Pascal, которая использует операцию xchg для мгновенного обмена значениями. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш :: Главная :: Типы и Переменные ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||