Limits.h: различия между версиями
Перейти к навигации
Перейти к поиску
[непроверенная версия] | [непроверенная версия] |
Содержимое удалено Содержимое добавлено
Спасено источников — 1, отмечено мёртвыми — 0. #IABot (v1.6.5) |
Нет описания правки |
||
Строка 10: | Строка 10: | ||
{| class="wikitable" |
{| class="wikitable" |
||
! Имя !! Описание !! Типичное значение 32-битной<br />выполняемой/компилируемой<br />программы (с 1995 и сейчас) !! Типичное значение 64-битной<br />выполняемой/компилируемой<br />программы (с 2008(?)) !! Стандартный минимум |
! Имя !! Описание !! Типичное значение 32-битной<br />выполняемой/компилируемой<br />программы (с 1995 и сейчас) !! Типичное значение 64-битной<br />выполняемой/компилируемой<br />программы (с 2008(?)) !! Стандартный минимум<br />или максимум диапазона значений по ANSI |
||
|- |
|- |
||
|<code>CHAR_BIT</code> || Число бит в [[байт]]е || align="right" | 8 || align="right" | 8 || align="right" | ≥ 8 |
|<code>CHAR_BIT</code> || Число бит в [[байт]]е || align="right" | 8 || align="right" | 8 || align="right" | ≥ 8 |
Версия от 21:49, 21 июля 2018
limits.h — заголовочный файл стандартной библиотеки общего назначения языка программирования Си, который включает определения характеристик общих типов переменных. Значения зависят от специфики реализации, но могут быть не ниже диапазона, определенного для конечного значения в удобной реализации Си.
Константы-члены
Колонка «минимальное значение диапазона» содержит минимумы из возможного диапазона для константы данного типа, как это указано в стандарте. Иногда, значения _MIN
представляют минимумы диапазона, представимые в виде редко используемого обратного кода и знакового диапазона. Большинство реализаций будут иметь больший диапазон по крайней мере для некоторых из этих чисел. например:
- Реализации дополнительного кода имеют
SCHAR_MIN
равным −128 (аналогично для всех остальных значений_MIN
). - 32-битные реализации устанавливают
INT_MAX
равным +2,147,483,647 (а также дляINT_MIN
иUINT_MAX
) - Реализации с поддержкой Юникода устанавливают
MB_LEN_MAX
4 или более. - Многие ЦСП имеют
CHAR_BIT
равным 16 или более[1][2].
Имя | Описание | Типичное значение 32-битной выполняемой/компилируемой программы (с 1995 и сейчас) |
Типичное значение 64-битной выполняемой/компилируемой программы (с 2008(?)) |
Стандартный минимум или максимум диапазона значений по ANSI |
---|---|---|---|---|
CHAR_BIT |
Число бит в байте | 8 | 8 | ≥ 8 |
SCHAR_MIN |
Минимальное значение для знакового char | −128 | −128 | ≤ −127 |
SCHAR_MAX |
Максимальное значение для знакового char | +127 | +127 | ≥ +127 |
UCHAR_MAX |
Максимальное значение для беззнакового char | +255 | +255 | ≥ +255 |
CHAR_MIN |
Минимальное значение для char | −128 | −128 | ≤ −127 (если char представлено какзнаковый char ; иначе 0)
|
CHAR_MAX |
Максимальное значение для char | +127 | +127 | ≥ +127 (если char представлено какзнаковый char ; иначе +255)
|
MB_LEN_MAX |
Максимальная многобайтовая длина символа по всем локалям | различается, обычно от 4 | различается, обычно от 4 | ≥ 1 |
SHRT_MIN |
Минимальное значение для short int | −32,768 | −32,768 | ≤ −32,767 |
SHRT_MAX |
Максимальное значение для short int | +32,767 | +32,767 | ≥ +32,767 |
USHRT_MAX |
Максимальное значение для беззнакового short int | +65,535 | +65,535 | ≥ +65,535 |
INT_MIN |
Минимальное значение для int | −2,147,483,648 | −2,147,483,648 | ≤ −32,767 |
INT_MAX |
Максимальное значение для int | +2,147,483,647 | +2,147,483,647 | ≥ +32,767 |
UINT_MAX |
Максимальное значение для беззнакового int | +4,294,967,295 | +4,294,967,295 | ≥ +65,535 |
LONG_MIN |
Минимальное значение для long int | −2,147,483,648 | −9,223,372,036,854,775,808 | ≤ −2,147,483,647 |
LONG_MAX |
Максимальное значение для long int | +2,147,483,647 | +9,223,372,036,854,775,807 | ≥ +2,147,483,647 |
ULONG_MAX |
Максимальное значение для беззнакового long int | +4,294,967,295 | +18,446,744,073,709,551,615 | ≥ +4,294,967,295 |
LLONG_MIN |
Минимальное значение для long long int | −9,223,372,036,854,775,808 | −9,223,372,036,854,775,808 | ≤ −9,223,372,036,854,775,807 |
LLONG_MAX |
Максимальное значение для long long int | +9,223,372,036,854,775,807 | +9,223,372,036,854,775,807 | ≥ +9,223,372,036,854,775,807 |
ULLONG_MAX |
Максимальное значение для беззнакового long long int | +18,446,744,073,709,551,615 | +18,446,744,073,709,551,615 | ≥ +18,446,744,073,709,551,615 |
Пример 1
#include <stdio.h>
#include <limits.h>
int main (void)
{
(CHAR_MAX==UCHAR_MAX) ? printf("This machine uses unsigned char by default\n") :
printf("This machine uses signed char by default\n");
return 0;
}
Пример 2
#include <limits.h>
#include <locale.h>
#include <stdio.h>
int main(void)
{
setlocale(LC_ALL, "RUS");
printf("Максимальное значение типа int в этой системе составляет %d\n", INT_MAX);
return 0;
}
См. также
- Стандартная библиотека языка Си
- float.h — Ограничение чисел с плавающей запятой
Дополнительные источники
- Enquire: Программа для автоматической генерации limits.h, также проверяющая корректность значений в уже существующем limits.h
Ссылки
limits.h
— основные определения, The Single UNIX® Specification, выпуск 7 от The Open Group (англ.)- Руководство по Си--2.5 limits.h, доступно по состоянию на сентябрь 2006.