先頭へ戻る

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

Programming Place Plus トップページ -- C言語編 -- 逆引き

先頭へ戻る

この章の概要

この章の概要です。

目的

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

たとえば、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 iMin = INT_MIN;
    int iMax = INT_MAX;
    signed char cMin = SCHAR_MIN;
    signed char cMax = SCHAR_MAX;
    long long llMin = LLONG_MIN;
    long long llMax = LLONG_MAX;

    printf("%d %d\n", iMin, iMax);
    printf("%hhd %hhd\n", cMin, cMax);
    printf("%lld %lld\n", llMin, llMax);

    return 0;
}

実行結果:

-2147483648 2147483647
-128 127
-9223372036854775808 9223372036854775807


参考リンク


更新履歴



逆引きのトップページへ

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

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
Twitter でツイート Twitter をフォロー LINE で送る
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー