名 前
div, ldiv, lldiv, imaxdiv − integer 型 の 割 算 の 商 と 余 り を 計 算 す る
書 式
#include <stdlib.h>
div_t
div(int numerator, int
denominator);
ldiv_t ldiv(long numerator, long
denominator);
lldiv_t lldiv(long long numerator, long
long denominator);
#include <inttypes.h>
imaxdiv_t imaxdiv(intmax_t numerator, intmax_t denominator);
glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 (feature_test_macros(7) 参 照 ):
lldiv():
_XOPEN_SOURCE >= 600
|| _ISOC99_SOURCE ||
_POSIX_C_SOURCE >= 200112L;
or cc −std=c99
説 明
div() 関 数 は numerator/denominator の 値 を 計 算 す る 。 商 と 余 り は 、 quot (商 ) と rem (余 り ) と い う 名 前 の 2 つ の integer 型 メ ン バ を 含 む div_t と い う 構 造 体 の 中 に 返 さ れ る (メ ン バ の 順 番 は 不 定 で あ る )。 商 は 0 に 近 い 方 に 丸 め ら れ る 。 結 果 は quot*denominator+rem = numerator を 満 た す 。
ldiv(), lldiv(), imaxdiv() 関 数 は 同 様 な 動 作 を し 、 上 に 示 し た 型 の 数 値 を 割 算 し て 、 上 に 示 し た 名 前 の 構 造 体 に 結 果 を 返 す 。 ど の 場 合 で も フ ィ ー ル ド quot と rem は 、 関 数 の 引 き 数 と 同 じ 型 で あ る 。
返 り 値
div_t (な ど の ) 構 造 体 。
属 性
マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 ) 関 数 div(), ldiv(), lldiv(), imaxdiv() は ス レ ッ ド セ ー フ で あ る 。
準 拠
SVr4, 4.3BSD, C89, C99. 関 数 lldiv() と imaxdiv() は C99 に 追 加 さ れ た 。
例
以 下 の 式 を 計 算 す る と 、
div_t q = div(−5, 3);
q.quot と q.rem は そ れ ぞ れ −1 と −2 に な る 。
関 連 項 目
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。