Div t

div_tは、C言語の標準ヘッダーcodice_1およびC++のcodice_2に定義されている構造体である。
int型の除算を行うcodice_3関数を利用した返り値として用いられる。
除算を行った際の商と剰余を保持する。
形式.
以下はC言語とC++での実装の一例である。
typedef struct {
 int quot;
 int rem;
} div_t;
quotが商、remが剰余を表す。
C言語におけるdiv_t.
div関数.
div_t構造体は、div関数の返り値として用いられる。以下はdiv関数の形式である。
div_t div (int numer, int denom);
コード例.
C言語でのコード例を以下に示す。
int main (void)
 div_t divresult;
 divresult = div (38,5);
 printf ("38 div 5 => %d, remainder %d.\n", divresult.quot, divresult.rem);
 return 0;
上記のコードをコンパイル・実行すると、以下の文字列が出力される。
 38 div 5 => 7, remainder 3.
C++におけるdiv_t.
div関数.
div関数は、後述するldiv_tとlldiv_t構造体のオーバーライドも存在する。
 div_t div ( int numer, int denom);
 ldiv_t div ( long numer, long denom);
lldiv_t div (long long numer, long long denom);
コード例.
C++でのコード例を以下に示す。
int main ()
 div_t divresult;
 divresult = div (38,5);
 printf ("38 div 5 => %d, remainder %d.\n", divresult.quot, divresult.rem);
 return 0;
上記のコードをコンパイル・実行すると、以下の文字列が出力される。
 38 div 5 => 7, remainder 3.
類似の構造体.
ldiv_t.
ldiv_t構造体はdiv_t構造体のデータがint型であったところをlong型に置き換えたもの。
ldiv_t構造体のための関数ldivも存在する。
以下はldiv_t構造体の実装の一例である。
typedef struct {
 long quot;
 long rem;
} ldiv_t;
lldiv_t.
lldiv_t構造体はdiv_t構造体のデータをlong long型に置き換えたもの。
ldiv_t同様こちらも関数lldivが存在する。
以下はその実装の一例である。
typedef struct {
 long long quot;
 long long rem;
} lldiv_t;
imaxdiv_t.
imaxdiv_t構造体は、div_t構造体のデータ型をintmax_t型に置き換えたもの。
imaxdiv_tを返り値とする関数imaxdivも存在する。
以下はその実装の一例である。
typedef struct {
 intmax_t quot;
 intmax_t rem;
} imaxdiv_t;