符号付き整数型の最小値・最大値を得る | Programming Place Plus C言語編 逆引き

トップページC言語編逆引き

このページの概要 🔗

このページの解説は C99 をベースとしています

以下は目次です。

目的 🔗

ある符号付き整数型で表現できる最小値や最大値を使いたいとします。

たとえば、int型の変数を定義するとき、表現できる最小値や最大値で初期化したい場合、どのように書けるでしょうか。

int min = ???;  // int型の最小値
int max = ???;  // int型の最大値

方法①(標準ライブラリのマクロを使う) 🔗

符号付き整数型の最小値や最大値を定義したマクロが、標準ライブラリに用意されていますから、それを使います。

これらのマクロは limits.h で定義されています。また、ptrdiff_t型のようなほかの符号付き整数型については stdint.h で定義されています。

すべてではありませんが、代表的なものを以下に挙げます。

最小値マクロ 最大値マクロ ヘッダ
(signed) char SCHAR_MIN SCHAR_MAX limits.h
(signed) short SHRT_MIN SHRT_MAX limits.h
(signed) int INT_MIN INT_MAX limits.h
(signed) long LONG_MIN LONG_MAX limits.h
(signed) long long LLONG_MIN LLONG_MAX limits.h
ptrdiff_t PTRDIFF_MIN PTRDIFF_MAX stdint.h
#include <limits.h>
#include <stdio.h>

int main(void)
{
    int i_min = INT_MIN;
    int i_max = INT_MAX;
    signed char c_min = SCHAR_MIN;
    signed char c_max = SCHAR_MAX;
    long long ll_min = LLONG_MIN;
    long long ll_max = LLONG_MAX;

    printf("%d %d\n", i_min, i_max);
    printf("%hhd %hhd\n", c_min, c_max);
    printf("%lld %lld\n", ll_min, ll_max);
}

実行結果:

-2147483648 2147483647
-128 127
-9223372036854775808 9223372036854775807


参考リンク 🔗


更新履歴 🔗



逆引きのトップページへ

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

Programming Place Plus のトップページへ



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