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

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

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


uintmax_t

概要 最大幅の符号無し整数型
ヘッダ stdint.h
形式 typedef unsigned long long int uintmax_t;
詳細

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

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


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

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

int main(void)
{
    uintmax_t a = UINTMAX_C(1000);
    printf(PRIuMAX "\n", a);
}

実行結果:

1000
関連

uintmax_t型の定数値を、UINTMAX_Cマクロで得られる。また、uintmax_t型で表現できる最大値は UINTMAX_MAX で定義されている。C23 からは UINTMAX_WIDTH が uintmax_t型のビット数を表す。

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

符号付きの最大整数型として intmax_t型がある。
解説章


参考リンク 🔗

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


更新履歴 🔗

≪さらに古い更新履歴≫



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

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

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

Programming Place Plus のトップページへ



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