ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 13.12.2020
Просмотров: 4301
Скачиваний: 28
Г Л А В А
24
Диапазоны целочисленных
данных <limits.h>
В заголовочном файле limits.h определены символические кон-
станты, которые описывают диапазоны целочисленных типов
данных. Ниже перечислены эти константы и приведены их зна-
чения. В общем случае значения этих символических констант
зависят от реализации, но они не могут сужать диапазон типа
данных, который задан значениями, приведенными ниже.
Для символьных типов данных определены следующие символи-
ческие константы:
#define CHAR_BIT 8 /* количество бит, требуемых для */
/* представления типа char */
#define SCHAR_MIN (-127) /* минимум типа signed char */
#define SCHAR_MAX 127 /* максимум типа signed char */
#define UCHAR_MAX 255 /* максимум типа unsigned char */
Диапазон типа
char
может совпадать с диапазоном типа
signed
char
или
unsigned char
, что определяется реализацией компиля-
тора. Обычно нужный диапазон можно задать посредством уста-
новки соответствующей опции компилятора. Поэтому для типа
char
определены два варианта диапазонов:
#define CHAR_MIN SCHAR_MIN /* минимум типа signed char */
#define CHAR_MAX SCHAR_MAX /* максимум типа signed char */
или
#define CHAR_MIN 0 /* минимум типа unsigned char */
#define CHAR_MAX UCHAR_MAX /* максимум типа unsigned char */
Часть III. Стандартная библиотека языка программирования C
312
Для длинных (multibyte) символов также определена символиче-
ская константа
MB_LEN_MAX
, которая задает максимальное количе-
ство байтов, используемых для представления длинного символа.
Для целочисленных типов данных определены следующие сим-
волические константы:
#define SHRT_MIN (-32767) /* минимум типа short */
#define SHRT_MAX 32767 /* максимум типа short */
#define USHRT_MAX 65535 /* максимум типа unsigned short */
#define INT_MIN (-32767) /* минимум типа int */
#define INT_MAX 32767 /* максимум типа int */
#define UINT_MAX 65535 /* максимум типа unsigned int */
#define LONG_MIN (-2147483647L) /* минимум типа long */
#define LONG_MAX 2147483647L /* максимум типа long */
#define ULONG_MAX 4294967295UL /* максимум типа */
/* unsigned long */
Г Л А В А
25
Диапазоны чисел
с плавающей точкой <float.h>
В заголовочном файле float.h определены символические кон-
станты, задающие диапазоны чисел с плавающей точкой. Ниже
перечислены эти константы и приведены их значения. В общем
случае значения этих символических констант зависят от реали-
зации, но они не могут сужать диапазон типа данных, который
задан значениями, приведенными ниже.
Для типа данных
float
определены следующие символические
константы:
#define FLT_DIG 6 /* точность представления */
/* в знаках после точки */
#define FLT_EPSILON 1E-5F /* такое значение, что */
/* 1.0 + FLT_EPSILON != 1.0 */
#define FLT_MANT_DIG 24 /* количество битов для */
/* представления мантиссы */
#define FLT_MAX 1E+37F /* максимальное значение */
#define FLT_MAX_10_EXP 37 /* максимальная экспонента */
/* для числа 10 */
#define FLT_MAX_EXP 128 /* максимальная экспонента */
/* для числа 2 */
#define FLT_MIN 1E-37F /* минимальное положительное */
/* значение */
#define FLT_MIN_10_EXP (-37) /* минимальная экспонента */
/* для числа 10 */
Часть III. Стандартная библиотека языка программирования C
314
#define FLT_MIN_EXP (-125) /* минимальная экспонента */
/* для числа 2 */
#define FLT_RADIX 2 /* система счисления экспоненты */
Для типа данных
double
определены следующие символические
константы:
#define DBL_DIG 10 /* точность представления в */
/* знаках после точки */
#define DBL_EPSILON 1E-9 /* такое значение, что */
/* 1.0 + DBL_EPSILON != 1.0 */
#define DBL_MANT_DIG 24 /* количество битов для */
/* представления мантиссы */
#define DBL_MAX 1E+37 /* максимальное значение */
#define DBL_MAX_10_EXP 37 /* максимальная экспонента */
/* для числа 10 */
#define DBL_MAX_EXP 128 /* максимальная экспонента */
/* для числа 2 */
#define DBL_MIN 1E-37 /* минимальное положительное */
/* значение */
#define DBL_MIN_10_EXP (-37) /* минимальная экспонента */
/* для числа 10 */
#define DBL_MIN_EXP (-125) /* минимальная экспонента */
/* для числа 2 */
Для типа данных
long double
определены следующие символиче-
ские константы:
#define LDBL_DIG 10 /* точность представления в */
/* знаках после точки */
#define LDBL_EPSILON 1E-9 /* такое значение, что */
/* 1.0 + DBL_EPSILON != 1.0 */
#define LDBL_MANT_DIG 24 /* количество битов для */
/* представления мантиссы */
#define LDBL_MAX 1E+37 /* максимальное значение */
#define LDBL_MAX_10_EXP 37 /* максимальная экспонента */
/* для числа 10 */
#define LDBL_MAX_EXP 128 /* максимальная экспонента */
/* для числа 2 */
Глава 25. Диапазоны чисел с плавающей точкой <float.h>
315
#define LDBL_MIN 1E-37 /* минимальное положительное */
/* значение */
#define LDBL_MIN_10_EXP (-37) /* минимальная экспонента */
/* для числа 10 */
#define LDBL_MIN_EXP (-125) /* минимальная экспонента */
/* для числа 2 */