c言語.各型の最大値・最小値
cの各型の最大値,最小値はlimits.hとfloat.hにINT_MAXなどといったマクロで定義されています.limits.h内でintやlongなどの整数型のマクロが宣言されていて,float.h内で実数型のマクロが定義されています.
limits.h内では,アーキテクチャに応じて適当なヘッダファイルをインクルードする仕組みになっていて,実際のマクロの定義はそのファイルの中で行われています.例えば手元のmacbookだと,/usr/include/i386/limits.hでINT_MAXなどのマクロが定義されているようです.こんな感じです.
#define SCHAR_MAX 127 /* min value for a signed char */ #define SCHAR_MIN (-128) /* max value for a signed char */ #define UCHAR_MAX 255 /* max value for an unsigned char */ #define CHAR_MAX 127 /* max value for a char */ #define CHAR_MIN (-128) /* min value for a char */ #define USHRT_MAX 65535 /* max value for an unsigned short */ #define SHRT_MAX 32767 /* max value for a short */ #define SHRT_MIN (-32768) /* min value for a short */ #define UINT_MAX 0xffffffff /* max value for an unsigned int */ #define INT_MAX 2147483647 /* max value for an int */ #define INT_MIN (-2147483647-1) /* min value for an int */