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.

__Data Type:__**div_t**-
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`

.

__Data Type:__**ldiv_t**-
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 first, previous, next, last section, table of contents.