Файл: Pobegaylo_A._C_Cplus_dlya_studenta.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 13.12.2020

Просмотров: 4159

Скачиваний: 28

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

  

 
 

Г Л А В А  

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 */ 

  

 


background image

Часть 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 */ 

 


background image

  

 
 

Г Л А В А  

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 */ 

  

 


background image

Часть 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 */ 


background image

Глава 25. Диапазоны чисел с плавающей точкой <float.h> 

315 

  #define LDBL_MIN 1E-37      /* минимальное положительное */ 
                              /* значение */ 
  #define LDBL_MIN_10_EXP (-37) /* минимальная экспонента */ 
                                /* для числа 10 */ 
  #define LDBL_MIN_EXP (-125) /* минимальная экспонента */ 
                              /* для числа 2 */ 

 


Смотрите также файлы