Go to the previous, next section.

This section describes functions for performing integer division. These
functions are redundant in the GNU C library, since in GNU C the ``/'`
operator always rounds towards zero. But in other C implementations,
``/'` may round differently with negative arguments. `div`

and
`ldiv`

are useful because they specify how to round the quotient:
towards zero. The remainder has the same sign as the numerator.

These functions are specified to return a result `r` such that the value

equals
`r`.quot*`denominator` + `r`.rem`numerator`.

To use these facilities, you should include the header file
``stdlib.h'` in your program.

This is a structure type used to hold the result returned by the `div`

function. It has the following members:

`int quot`

- The quotient from the division.
`int rem`

- The remainder from the division.

__Function:__ div_t **div** *(int numerator, int denominator)*

This function `div`

computes the quotient and remainder from
the division of `numerator` by `denominator`, returning the
result in a structure of type `div_t`

.

If the result cannot be represented (as in a division by zero), the behavior is undefined.

Here is an example, albeit not a very useful one.

div_t result; result = div (20, -6);

Now `result.quot`

is `-3`

and `result.rem`

is `2`

.

This is a structure type used to hold the result returned by the `ldiv`

function. It has the following members:

`long int quot`

- The quotient from the division.
`long int rem`

- The remainder from the division.

(This is identical to `div_t`

except that the components are of
type `long int`

rather than `int`

.)

__Function:__ ldiv_t **ldiv** *(long int numerator, long int denominator)*

The `ldiv`

function is similar to `div`

, except that the
arguments are of type `long int`

and the result is returned as a
structure of type `ldiv`

.

Go to the previous, next section.