### Dec

#### Synopsis

For ordinal types:

procedure Dec (var x: `ordinal_type`);

or

procedure Dec (var x: `ordinal_type`; Amount: `and_integer_type`);

For pointer types:

procedure Dec (var p: `any_pointer_type`);

or

procedure Dec (var p: `any_pointer_type`; Amount: `and_integer_type`);

#### Description

For ordinal types, Dec decreases the value of x by one or
by amount if specified.

If the argument p is pointing to a specified type (typed
pointer), Dec decreases the address of p by the size
of the type p is pointing to or by amount times that
size respectively. If p is an untyped pointer (i.e. p
is of type Pointer), p is decreased by one, otherwise
by amount if specified.

#### Conforming to

Dec is a Borland Pascal extension. The combination of the second
argument with application to pointers is a GNU Pascal extension.

#### Example

program DecDemo;
var
x: Integer;
y: array [1 .. 5] of Integer;
p: ^Integer;
begin
x := 9;
Dec (x, 10); { yields -1 }
{$X+} { Turn on extended systax }
p := @y[5]; { p points to y[5] }
Dec (p, 3) { p points to y[2] }
end.

#### See also

Inc, Pred, Succ, Pointer Arithmetics.