資料類型常數
資料類型常數是整數和浮點數資料類型所允許值的實作相關範圍。
整數類型常數
這些常數會提供整數資料類型的範圍。 若要使用這些常數,請在原始程式檔中包括 limits.h 標頭:
#include <limits.h>
注意
編譯程式選項會將/J
預設類型從 signed char
變更為 unsigned char
char
。
常數 | 值 | Description |
---|---|---|
CHAR_BIT |
8 | char 中的位元數 |
SCHAR_MIN |
(-128) | 最小 signed char 值 |
SCHAR_MAX |
127 | 最大 signed char 值 |
UCHAR_MAX |
255 (0xff) | 最大 unsigned char 值 |
CHAR_MIN |
(-128)(0 如果 /J 已使用選項) |
最小 char 值 |
CHAR_MAX |
127 (如果使用 /J 選項則為 255) |
最大 char 值 |
MB_LEN_MAX |
5 | 多位元組 char 中的最大位元組數 |
SHRT_MIN |
-32768 | 最小 signed short 值 |
SHRT_MAX |
32767 | 最大 signed short 值 |
USHRT_MAX |
65535 (0xffff) | 最大 unsigned short 值 |
INT_MIN |
(-2147483647 - 1) | 最小 signed int 值 |
INT_MAX |
2147483647 | 最大 signed int 值 |
UINT_MAX |
4294967295 (0xffffffff) | 最大 unsigned int 值 |
LONG_MIN |
(-2147483647L - 1) | 最小 signed long 值 |
LONG_MAX |
2147483647L | 最大 signed long 值 |
ULONG_MAX |
4294967295UL (0xfffffffful) | 最大 unsigned long 值 |
LLONG_MIN |
(-9223372036854775807LL - 1) | 最小值 signed long long 或 __int64 值 |
LLONG_MAX |
9223372036854775807LL | 最大值 signed long long 或 __int64 值 |
ULLONG_MAX |
0xffffffffffffffffull | 最大 unsigned long long 值 |
_I8_MIN |
(-127i8 - 1) | 帶正負號的最小 8 位元值 |
_I8_MAX |
127i8 | 帶正負號的最大 8 位元值 |
_UI8_MAX |
0xffui8 | 不帶正負號的最大 8 位元值 |
_I16_MIN |
(-32767i16 - 1) | 帶正負號的最小 16 位元值 |
_I16_MAX |
32767i16 | 帶正負號的最大 16 位元值 |
_UI16_MAX |
0xffffui16 | 不帶正負號的最大 16 位元值 |
_I32_MIN |
(-2147483647i32 - 1) | 帶正負號的最小 32 位元值 |
_I32_MAX |
2147483647i32 | 帶正負號的最大 32 位元值 |
_UI32_MAX |
0xffffffffui32 | 不帶正負號的最大 32 位元值 |
_I64_MIN |
(-9223372036854775807 - 1) | 帶正負號的最小 64 位元值 |
_I64_MAX |
9223372036854775807 | 帶正負號的最大 64 位元值 |
_UI64_MAX |
0xffffffffffffffffui64 | 不帶正負號的最大 64 位元值 |
_I128_MIN |
(-170141183460469231731687303715884105727i128 - 1) | 帶正負號的最小 128 位元值 |
_I128_MAX |
170141183460469231731687303715884105727i128 | 帶正負號的最大 128 位元值 |
_UI128_MAX |
0xffffffffffffffffffffffffffffffffui128 | 不帶正負號的最大 128 位元值 |
SIZE_MAX |
與 定義 時_UI64_MAX _WIN64 相同,或UINT_MAX |
最大的原生整數大小 |
RSIZE_MAX |
與 (SIZE_MAX >> 1) |
最大的安全程式庫整數大小 |
浮點數類型常數
下列常數會提供、 和 float
數據類型的範圍和其他特性。long double
double
若要使用這些常數,請在原始程式檔中包括 float.h 標頭:
#include <float.h>
常數 | 值 | Description |
---|---|---|
DBL_DECIMAL_DIG |
17 | 十進位位數的進位精確度 |
DBL_DIG |
15 | 十進位位數精確度 |
DBL_EPSILON |
2.2204460492503131e-016 | 最小,使 1.0 + DBL_EPSILON != 1.0 |
DBL_HAS_SUBNORM |
1 | 類型支援偏低的 (異常) 數字 |
DBL_MANT_DIG |
53 | 有效位數 (尾數) 中的位元數 |
DBL_MAX |
1.7976931348623158e+308 | 最大值 |
DBL_MAX_10_EXP |
308 | 最大十進位指數 |
DBL_MAX_EXP |
1024 | 最大二進位指數 |
DBL_MIN |
2.2250738585072014e-308 | 最小的標準化正值 |
DBL_MIN_10_EXP |
(-307) | 最小十進位指數 |
DBL_MIN_EXP |
(-1021) | 最小二進位指數 |
_DBL_RADIX |
2 | 指數基數 |
DBL_TRUE_MIN |
4.9406564584124654e-324 | 最小的正數偏低值 |
FLT_DECIMAL_DIG |
9 | 十進位位數的進位精確度 |
FLT_DIG |
6 | 十進位位數精確度 |
FLT_EPSILON |
1.192092896e-07F | 最小,使 1.0 + FLT_EPSILON != 1.0 |
FLT_HAS_SUBNORM |
1 | 類型支援偏低的 (異常) 數字 |
FLT_MANT_DIG |
24 | 有效位數 (尾數) 中的位元數 |
FLT_MAX |
3.402823466e+38F | 最大值 |
FLT_MAX_10_EXP |
38 | 最大十進位指數 |
FLT_MAX_EXP |
128 | 最大二進位指數 |
FLT_MIN |
1.175494351e-38F | 最小的標準化正值 |
FLT_MIN_10_EXP |
(-37) | 最小十進位指數 |
FLT_MIN_EXP |
(-125) | 最小二進位指數 |
FLT_RADIX |
2 | 指數基數 |
FLT_TRUE_MIN |
1.401298464e-45F | 最小的正數偏低值 |
LDBL_DIG |
15 | 十進位位數精確度 |
LDBL_EPSILON |
2.2204460492503131e-016 | 最小,使 1.0 + LDBL_EPSILON != 1.0 |
LDBL_HAS_SUBNORM |
1 | 類型支援偏低的 (異常) 數字 |
LDBL_MANT_DIG |
53 | 有效位數 (尾數) 中的位元數 |
LDBL_MAX |
1.7976931348623158e+308 | 最大值 |
LDBL_MAX_10_EXP |
308 | 最大十進位指數 |
LDBL_MAX_EXP |
1024 | 最大二進位指數 |
LDBL_MIN |
2.2250738585072014e-308 | 最小的標準化正值 |
LDBL_MIN_10_EXP |
(-307) | 最小十進位指數 |
LDBL_MIN_EXP |
(-1021) | 最小二進位指數 |
_LDBL_RADIX |
2 | 指數基數 |
LDBL_TRUE_MIN |
4.9406564584124654e-324 | 最小的正數偏低值 |
DECIMAL_DIG |
與 DBL_DECIMAL_DIG 相同 |
預設值 (double) 十進位位數的進位精確度 |