Manpages

名 前

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() 関 数 は 同 様 な 動 作 を し 、 上 に 示 し た 型 の 数 値 を 割 算 し て 、 上 に 示 し た 名 前 の 構 造 体 に 結 果 を 返 す 。 ど の 場 合 で も フ ィ ー ル ド quotrem は 、 関 数 の 引 き 数 と 同 じ 型 で あ る 。

返 り 値

div_t (な ど の ) 構 造 体 。

属 性

マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 ) 関 数 div(), ldiv(), lldiv(), imaxdiv() は ス レ ッ ド セ ー フ で あ る 。

準 拠

SVr4, 4.3BSD, C89, C99. 関 数 lldiv() と imaxdiv() は C99 に 追 加 さ れ た 。

以 下 の 式 を 計 算 す る と 、

div_t q = div(−5, 3);

q.quotq.rem は そ れ ぞ れ −1 と −2 に な る 。

関 連 項 目

abs(3), remainder(3)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。