- limits.h
-
Стандартная библиотека
языка программирования С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(?))Стандартный минимум-
или максимум диапазона значений по ANSICHAR_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
представлено как a
знаковый 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 Пример
#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; }
См. также
- Стандартная библиотека языка Си
- float.h — Ограничение чисел с плавающей запятой
Дополнительные источники
- Enquire: Программа для автоматической генерации limits.h, также проверяющая корректность значений в уже существующем limits.h
Ссылки
limits.h
— основные определения, The Single UNIX® Specification, выпуск 7 от The Open Group (англ.)- Руководство по Си--2.5 limits.h, доступно по состоянию на сентябрь 2006.
Категория:- Стандартные библиотечные заголовки языка Си
- Реализации дополнительного кода имеют
Wikimedia Foundation. 2010.