div_tは、C言語の標準ヘッダーstdlib.hおよびC++のcstdlibに定義されている構造体である。 int型の除算を行うdiv関数を利用した返り値として用いられる。 除算を行った際の商と剰余を保持する。

形式 以下はC言語とC++での実装の一例である。 typedef struct { int quot; int rem; } div_t; quotが商、remが剰余を表す。

C言語におけるdiv_t div関数 div_t構造体は、div関数の返り値として用いられる。以下はdiv関数の形式である。 #include <stdlib.h> div_t div (int numer, int denom);

コード例 C言語でのコード例を以下に示す。このソースコードはcplusplus.comより。 #include <stdio.h> /* printf */ #include <stdlib.h> /* div, div_t */

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構造体のオーバーライドも存在する。 #include <cstdlib> div_t div ( int numer, int denom); ldiv_t div ( long numer, long denom); lldiv_t div (long long numer, long long denom);

コード例 C++でのコード例を以下に示す。このソースコードはcplusplus.comにあったソースコードのヘッダを書き換えたもの。 #include <cstdio> #include <cstdlib>

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;

注釈

関連項目 C言語 C++ 標準Cライブラリ

外部リンク C言語関数辞典のdiv関数の記事 cplusplus.comのdiv_tの記事