intmax_t | Programming Place Plus C言語編 標準ライブラリのリファレンス

トップページC言語編標準ライブラリのリファレンス(名前順)

トップページC言語編標準ライブラリのリファレンス(ヘッダ別)


intmax_t

概要 最大幅の符号付き整数型
ヘッダ stdint.h
形式 typedef long long int intmax_t;
詳細

最大幅(ビット数が最も大きい)の符号付き整数型。具体的には以下のように定義される。

  • C23 より前
    • すべての符号付き整数型の任意の値を表現可能な符号付き整数型
  • C23
    • ビット精度の符号付き整数型と、long long よりも幅が大きい拡張符号付き整数型を除いた、すべての符号付き整数型の任意の値を表現可能な符号付き整数型


明確な型が分からないので、定数値を表現する際、付加すべきサフィックスが分からない(long long int型だと分かっていれば LL を付ければよいが、それが適切かどうか分からない)。そのため、ソースコード上で定数値を記述する際には、INTMAX_Cマクロの助けを借りる。

注意 C23以降、仕様の修正により、intmax_t型よりも大きい整数型が存在し得る。intmax_t型のビット数は INTMAX_WIDTH で調べられる。
使用例
#include <stdio.h>
#include <stdint.h>
#include <inttypes.h>

int main(void)
{
    intmax_t a = INTMAX_C(1000);
    printf("%" PRIdMAX "\n", a);
}

実行結果:

1000
関連

intmax_t型の定数値を INTMAX_Cマクロで得られる。また、intmax_t型で表現できる最小値は INTMAX_MIN、最大値は INTMAX_MAX で定義されている。C23 からは INTMAX_WIDTH が intmax_t型のビット数を表す。

printf関数系の変換指定に使う文字列として、PRIdMAXPRIiMAX が、scanf関数系の変換指定に使う文字列として、SCNdMAXSCNiMAXの各マクロがある。

符号なしの最大整数型として uintmax_t型がある。
解説章


参考リンク 🔗

本ページはアフィリエイトプログラムによる収益を得ています。
以下のリンクから商品を購入されると、Programming Place 管理者に紹介料が支払われています。


更新履歴 🔗

≪さらに古い更新履歴≫



標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る