Dec

Adam Boduch
Dec
Moduł: System
```delphi procedure Dec(var X[ ; N: Longint]); ``` [[Delphi/Procedury|Procedura]] zmniejsza wartość parametru X o 1 lub wartość parametru N, a w wypadku, gdy to jest wskaźnik typowany, przesuwa go o rozmiar typu, na który wskazuje, co jest przydatne, np. przy optymalnym korzystaniu z tablic.

Procedura Dec ma zastosowanie przy:

Wartość parametru X może być dowolnego typu porządkowego (włączając Int64). Procedura Dec generuje optymalny kod, jest zalecana do używania w pętlach, zamiast operatora odejmowania (-):

var
  X : Integer;
begin
  X := 10;
  Dec(X); // efekt: X będzie miało wartość 9
  X := X - 1; // efekt: X będzie miało wartość 8
  Dec(X, 2); // efekt: X będzie miało wartość 6
end;

Parametr X nie może być właściwością

Przykładowe użycie gdy parametr X jest wskaźnikiem:

program Foo;

{$APPTYPE CONSOLE}

var
  E : PExtended;
begin
  // przydzielenie pamięci
  GetMem(E, SizeOf(Extended) * 2);
  E^ := 2.45; // przypisanie danych
  Inc(E); // zmiana położenia bloku
  E^ := 4.56; // przypisanie wartości

  Dec(E);

  Writeln(E^); // wyświetli: 2.45
  Inc(E);
  Writeln(E^); // wyświetli: 4.56

  Readln;
  FreeMem(E); // zwolnienie pamięci
end.

Możliwe jest również użycie procedury Dec na wartościach znakowych. Poniższy przykład prezentuje użycie tej procedury na zmiennej C typu Char:

var
  C : Char;
begin
  C := 'B';
  Dec(C); // zmienna posiada wartość 'A'
end;

W połączeniu ze zbiorami, procedura Dec przesuwa aktywny element o N:

program Foo;

{$APPTYPE CONSOLE}

type
  TMySet = (Audi, BMW, Mercedes);

var
  mySet : TMySet;
begin
  mySet := BMW;

  // mySet będzie miało wartość 'Audi'
  Dec(mySet);

  case mySet of
    Audi: Writeln('Audi');
    BMW: Writeln('BWM');
    Mercedes: Writeln('Mercedes');
  end;
  Readln;
end.

Po wykonaniu takiego kodu, wartość mySet będzie równa Audi.

Zobacz też:

0 komentarzy