Stałe typu danych
Stałe typu danych to zależne od implementacji zakresy wartości dozwolonych dla typów danych całkowitych i zmiennoprzecinkowych.
Stałe typu całkowitego
Te stałe zapewniają zakresy dla całkowitych typów danych. Aby użyć tych stałych, dołącz nagłówek limits.h do pliku źródłowego:
#include <limits.h>
Uwaga
Opcja kompilatora /J
zmienia domyślny char
typ z signed char
na unsigned char
.
Stała | Wartość | Opis |
---|---|---|
CHAR_BIT |
8 | Liczba bitów w obiekcie char |
SCHAR_MIN |
(-128) | Wartość minimalna signed char |
SCHAR_MAX |
127 | Wartość maksymalna signed char |
UCHAR_MAX |
255 (0xff) | Wartość maksymalna unsigned char |
CHAR_MIN |
(-128) (0, jeśli /J użyto opcji) |
Wartość minimalna char |
CHAR_MAX |
127 (255, jeśli /J użyto opcji) |
Wartość maksymalna char |
MB_LEN_MAX |
5 | Maksymalna liczba bajtów w wielobajtach char |
SHRT_MIN |
-32768 | Wartość minimalna signed short |
SHRT_MAX |
32767 | Wartość maksymalna signed short |
USHRT_MAX |
65535 (0xffff) | Wartość maksymalna unsigned short |
INT_MIN |
(-2147483647 - 1) | Wartość minimalna signed int |
INT_MAX |
2147483647 | Wartość maksymalna signed int |
UINT_MAX |
4294967295 (0xffffffff) | Wartość maksymalna unsigned int |
LONG_MIN |
(-2147483647L - 1) | Wartość minimalna signed long |
LONG_MAX |
2147483647L | Wartość maksymalna signed long |
ULONG_MAX |
4294967295UL (0xfffffful) | Wartość maksymalna unsigned long |
LLONG_MIN |
(-9223372036854775807LL - 1) | Minimalna signed long long lub __int64 wartość |
LLONG_MAX |
9223372036854775807LL | Wartość maksymalna signed long long lub __int64 |
ULLONG_MAX |
0xffffull | Wartość maksymalna unsigned long long |
_I8_MIN |
(-127i8 -1) | Minimalna wartość 8-bitowa ze znakiem |
_I8_MAX |
127i8 | Maksymalna podpisana wartość 8-bitowa |
_UI8_MAX |
0xffui8 | Maksymalna niepodpisane wartość 8-bitowa |
_I16_MIN |
(-32767i16 -1) | Minimalna wartość 16-bitowa ze znakiem |
_I16_MAX |
32767i16 | Maksymalna podpisana wartość 16-bitowa |
_UI16_MAX |
0xffui16 | Maksymalna niepodpisane 16-bitowa wartość |
_I32_MIN |
(-2147483647i32 - 1) | Minimalna wartość 32-bitowa ze znakiem |
_I32_MAX |
2147483647i32 | Maksymalna wartość 32-bitowa ze znakiem |
_UI32_MAX |
0xffffffui32 | Maksymalna niepodpisane wartość 32-bitowa |
_I64_MIN |
(-9223372036854775807 - 1) | Minimalna wartość 64-bitowa ze znakiem |
_I64_MAX |
9223372036854775807 | Maksymalna podpisana wartość 64-bitowa |
_UI64_MAX |
0xffffui64 | Maksymalna niepodpisane wartość 64-bitowa |
_I128_MIN |
(-170141183460469231731687303715884105727i128 - 1) | Minimalna wartość 128-bitowa ze znakiem |
_I128_MAX |
170141183460469231731687303715884105727i128 | Maksymalna wartość ze znakiem 128-bitowym |
_UI128_MAX |
0xffui128 | Maksymalna niepodpisane wartość 128-bitowa |
SIZE_MAX |
tak samo jak _UI64_MAX w przypadku, gdy _WIN64 jest zdefiniowana, lub UINT_MAX |
Maksymalny rozmiar liczby całkowitej natywnej |
RSIZE_MAX |
tak samo jak (SIZE_MAX >> 1) |
Maksymalny rozmiar liczby całkowitej bezpiecznej biblioteki |
Stałe typu zmiennoprzecinkowego
Następujące stałe zapewniają zakres i inne cechy long double
typów danych i float
. double
Aby użyć tych stałych, dołącz nagłówek float.h do pliku źródłowego:
#include <float.h>
Stała | Wartość | Opis |
---|---|---|
DBL_DECIMAL_DIG |
17 | Liczba cyfr dziesiętnych dokładności zaokrąglania |
DBL_DIG |
15 | Liczba cyfr dziesiętnych precyzji |
DBL_EPSILON |
2.2204460492503131e-016 | Najmniejszy taki, że 1.0 + DBL_EPSILON != 1.0 |
DBL_HAS_SUBNORM |
1 | Typ obsługuje liczby podnormalne (denormalne) |
DBL_MANT_DIG |
53 | Liczba bitów w znakowaniu (mantissa) |
DBL_MAX |
1.7976931348623158e+308 | Wartość maksymalna |
DBL_MAX_10_EXP |
308 | Maksymalny wykładnik dziesiętny |
DBL_MAX_EXP |
1024 | Maksymalny wykładnik binarny |
DBL_MIN |
2.2250738585072014e-308 | Minimalna znormalizowana wartość dodatnia |
DBL_MIN_10_EXP |
(-307) | Minimalny wykładnik dziesiętny |
DBL_MIN_EXP |
(-1021) | Minimalny wykładnik binarny |
_DBL_RADIX |
2 | Promienie wykładnicze |
DBL_TRUE_MIN |
4.9406564584124654e-324 | Minimalna dodatnia wartość subnormalna |
FLT_DECIMAL_DIG |
9 | Liczba cyfr dziesiętnych dokładności zaokrąglania |
FLT_DIG |
6 | Liczba cyfr dziesiętnych precyzji |
FLT_EPSILON |
1.192092896e-07F | Najmniejszy taki, że 1.0 + FLT_EPSILON != 1.0 |
FLT_HAS_SUBNORM |
1 | Typ obsługuje liczby podnormalne (denormalne) |
FLT_MANT_DIG |
24 | Liczba bitów w znakowaniu (mantissa) |
FLT_MAX |
3.402823466e+38F | Wartość maksymalna |
FLT_MAX_10_EXP |
38 | Maksymalny wykładnik dziesiętny |
FLT_MAX_EXP |
128 | Maksymalny wykładnik binarny |
FLT_MIN |
1.175494351e-38F | Minimalna znormalizowana wartość dodatnia |
FLT_MIN_10_EXP |
(-37) | Minimalny wykładnik dziesiętny |
FLT_MIN_EXP |
(-125) | Minimalny wykładnik binarny |
FLT_RADIX |
2 | Promienie wykładnicze |
FLT_TRUE_MIN |
1.401298464e-45F | Minimalna dodatnia wartość subnormalna |
LDBL_DIG |
15 | Liczba cyfr dziesiętnych precyzji |
LDBL_EPSILON |
2.2204460492503131e-016 | Najmniejszy taki, że 1.0 + LDBL_EPSILON != 1.0 |
LDBL_HAS_SUBNORM |
1 | Typ obsługuje liczby podnormalne (denormalne) |
LDBL_MANT_DIG |
53 | Liczba bitów w znakowaniu (mantissa) |
LDBL_MAX |
1.7976931348623158e+308 | Wartość maksymalna |
LDBL_MAX_10_EXP |
308 | Maksymalny wykładnik dziesiętny |
LDBL_MAX_EXP |
1024 | Maksymalny wykładnik binarny |
LDBL_MIN |
2.2250738585072014e-308 | Minimalna znormalizowana wartość dodatnia |
LDBL_MIN_10_EXP |
(-307) | Minimalny wykładnik dziesiętny |
LDBL_MIN_EXP |
(-1021) | Minimalny wykładnik binarny |
_LDBL_RADIX |
2 | Promienie wykładnicze |
LDBL_TRUE_MIN |
4.9406564584124654e-324 | Minimalna dodatnia wartość subnormalna |
DECIMAL_DIG |
tak samo jak DBL_DECIMAL_DIG |
Domyślne (podwójne) cyfry dziesiętne dokładności zaokrąglania |