This section describes functions for performing integer division. These
functions are redundant when GNU CC is used, because 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
r.quot*denominator + r.rem
equals
numerator.
To use these facilities, you should include the header file `stdlib.h' in your program.
div
function. It has the following members:
int quot
int rem
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
.
ldiv
function. It has the following members:
long int quot
long int rem
(This is identical to div_t
except that the components are of
type long int
rather than int
.)
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_t
.
lldiv
function. It has the following members:
long long int quot
long long int rem
(This is identical to div_t
except that the components are of
type long long int
rather than int
.)
lldiv
function is like the div
function, but the
arguments are of type long long int
and the result is returned as
a structure of type lldiv_t
.
The lldiv
function was added in ISO C99.
imaxdiv
function. It has the following members:
intmax_t quot
intmax_t rem
(This is identical to div_t
except that the components are of
type intmax_t
rather than int
.)
See section Integers for a description of the intmax_t
type.
imaxdiv
function is like the div
function, but the
arguments are of type intmax_t
and the result is returned as
a structure of type imaxdiv_t
.
See section Integers for a description of the intmax_t
type.
The imaxdiv
function was added in ISO C99.
Go to the first, previous, next, last section, table of contents.