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.
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.
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.
This function
div
computes the quotient and remainder from the division of numerator by denominator, returning the result in a structure of typediv_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
andresult.rem
is2
.
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 typelong int
rather thanint
.)
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.
The
ldiv
function is similar todiv
, except that the arguments are of typelong int
and the result is returned as a structure of typeldiv_t
.
This is a structure type used to hold the result returned by the
lldiv
function. It has the following members:
long long int quot
- The quotient from the division.
long long int rem
- The remainder from the division.
(This is identical to
div_t
except that the components are of typelong long int
rather thanint
.)
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.
The
lldiv
function is like thediv
function, but the arguments are of typelong long int
and the result is returned as a structure of typelldiv_t
.The
lldiv
function was added in ISO C99.
This is a structure type used to hold the result returned by the
imaxdiv
function. It has the following members:
intmax_t quot
- The quotient from the division.
intmax_t rem
- The remainder from the division.
(This is identical to
div_t
except that the components are of typeintmax_t
rather thanint
.)See Integers for a description of the
intmax_t
type.
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.
The
imaxdiv
function is like thediv
function, but the arguments are of typeintmax_t
and the result is returned as a structure of typeimaxdiv_t
.See Integers for a description of the
intmax_t
type.The
imaxdiv
function was added in ISO C99.