Быстрый способ обмена значений в 2х переменныхDelphi , Синтаксис , Типы и ПеременныеБыстрый способ обмена значений в 2х переменныхАвтор: 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 прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Типы и Переменные ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |