Limits.h: различия между версиями

31 байт добавлено ,  14 лет назад
нет описания правки
[непроверенная версия][непроверенная версия]
( Новая страница: «{{lowercase|title=limits.h}} ''limits.h'' - заголовочный файл '''стандартной библиотеки общего назна...»)
 
Нет описания правки
{{lowercase|title=limits.h}}
''limits.h'' - — заголовочный файл '''стандартной библиотеки общего назначения''' [[Язык программирования Си|языка программирования Си]], который включает определения характеристик общих типов переменных. Значения зависят от специфики реализации, но могут быть не ниже диапазона, определенного для конечного значения в удобной реализации Си.
 
== Константы-члены ==
Колонка "«минимальное значение диапазона"» содержит минимумы из возможного диапазона для константы данного типа, как это указано в стандарте. Иногда, значения <code>_MIN</code> представляют минимумы диапазона, представимые в виде редко используемого [[Обратный код|обратного кода]] и [[Знаковый диапазон|знакового диапазона]]. Большинство реализаций будут иметь больший диапазон по крайней мере для некоторых из этих чисел. например:
* Реализации [[Дополнительный код (представление числа)|дополнительного кода]] имеют <code>SCHAR_MIN</code> равным –128−128 (аналогично для всех остальных значений <code>_MIN</code>).
* [[32-битность|32-битные]] реализации устанавливают <code>INT_MAX</code> равным +2,147,483,647 (а также для <code>INT_MIN</code> и <code>UINT_MAX</code>)
* Реализации с поддержкой [[Юникод]]а устанавливают <code>MB_LEN_MAX</code> 4 или более.
* Многие [[Цифровой сигнальный процессор|ЦСП]] имеют <code>CHAR_BIT</code> равным 16 или более[http://www.parashift.com/c++-faq-lite/intrinsic-types.html#faq-26.4][http://home.att.net/~jackklein/c/inttypes.html#char].
 
{| class="wikitable"
! Имя !! Описание !! Типичное значение 32-битной<br />выполняемой/компилируемой<br />программы(с 1995 и сейчас) !! Типичное значение 64-битной<br />выполняемой/компилируемой<br />(с 2008(?)) !! Стандартный минимум-<br />или максимум диапазона значений по ANSI
|-
|<code>CHAR_BIT</code> || Число бит в [[байт]]е || align="right" | 8 || align="right" | 8 || align="right" | ≥ 8
|-
|<code>SCHAR_MIN</code> || Минимальное значение для знакового char || align="right" | –128−128 || align="right" | –128−128 || align="right" | ≤ –127≤ -127
|-
|<code>SCHAR_MAX</code> || Максимальное значение для знакового char || align="right" | +127 || align="right" | +127 || align="right" | ≥ +127
|<code>UCHAR_MAX</code> || Максимальное значение для беззнакового char || align="right" | +255 || align="right" | +255 || align="right" | ≥ +255
|-
|<code>CHAR_MIN</code> || Минимальное значение для char || align="right" | –128−128 || align="right" | –128−128 || align="right" | ≤ –127≤ -127<br />(если <code>char</code> представлено как a<br /><code>знаковый char</code>; иначе 0)
|-
|<code>CHAR_MAX</code> || Максимальное значение для char || align="right" | +127 || align="right" | +127 || align="right" | ≥ +127<br />(если <code>char</code> представлено как<br /><code>знаковый char</code>; иначе +255)
|-
|<code>MB_LEN_MAX</code> || Максимальная многобайтовая длина символа по всем локалям || align="right" | различается, обычно от 4 || align="right" | различается, обычно от 4 || align="right" | ≥ 1
|-
|<code>SHRT_MIN</code> || Минимальное значение для short int || align="right" | –32−32,768 || align="right" | –32−32,768 || align="right" | ≤ –32≤ -32,767
|-
|<code>SHRT_MAX</code> || Максимальное значение для short int || align="right" | +32,767 || align="right" | +32,767 || align="right" | ≥ +32,767
|<code>USHRT_MAX</code> || Максимальное значение для беззнакового short int || align="right" | +65,535 || align="right" | +65,535 || align="right" | ≥ +65,535
|-
|<code>INT_MIN</code> || Минимальное значение для int || align="right" | –2−2,147,483,648 || align="right" | –2−2,147,483,648 || align="right" | ≤ –32≤ -32,767
|-
|<code>INT_MAX</code> || Максимальное значение для int || align="right" | +2,147,483,647 || align="right" | +2,147,483,647 || align="right" | ≥ +32,767
|<code>UINT_MAX</code> || Максимальное значение для беззнакового int || align="right" | +4,294,967,295 || align="right" | +4,294,967,295 || align="right" | ≥ +65,535
|-
|<code>LONG_MIN</code> || Минимальное значение для long int || align="right" | –2−2,147,483,648 || align="right" | –9−9,223,372,036,854,775,808 || align="right" | ≤ –2≤ -2,147,483,647
|-
|<code>LONG_MAX</code> || Максимальное значение для long int || align="right" | +2,147,483,647 || align="right" | +9,223,372,036,854,775,807 || align="right" | ≥ +2,147,483,647
|<code>ULONG_MAX</code> || максимальное значение для беззнакового long int || align="right" | +4,294,967,295 || align="right" | +18,446,744,073,709,551,615 || align="right" | ≥ +4,294,967,295
|-
|<code>LLONG_MIN</code> || Минимальное значение для long long int || align="right" | –9−9,223,372,036,854,775,808 || align="right" | –9−9,223,372,036,854,775,808 || align="right" | ≤ -9,223,372,036,854,775,807
|-
|<code>LLONG_MAX</code> || Максимальное значение для long long int || align="right" | +9,223,372,036,854,775,807 || align="right" | +9,223,372,036,854,775,807 || align="right" | ≥ +9,223,372,036,854,775,807
|}
 
== Смотри также ==
* [[Стандартная библиотека языка Си]]
* [[Float.h]] - — Ограничение числ с плавающей запятой
 
== Дополнительные источники ==
* [http://www.cwi.nl/~steven/enquire.html Enquire]: Программа для автоматической генерации limits.h, также проверяющая корректность значений в уже существующем limits.h
 
== Ссылки ==
* [http://www.acm.uiuc.edu/webmonkeys/book/c_guide/2.5.html Руководство по Си--2.5 limits.h], доступно по состоянию на сентябрь 2006.
 
[[Категория:Стандартная библиотека Си]]
Анонимный участник