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 или более.
Имя Описание Типичное значение 32-битнойвыполняемой/компилируемойпрограммы (с 1995 и сейчас) Типичное значение 64-битнойвыполняемой/компилируемойпрограммы (с 2008(?)) Стандартный минимумили максимум диапазона значений по ANSICHAR_BIT Число бит в байте 8 8 ≥ 8SCHAR_MIN Минимальное значение для знакового char −128 −128 ≤ −127SCHAR_MAX Максимальное значение для знакового char 127 127 ≥ 127UCHAR_MAX Максимальное значение для беззнакового char 255 255 ≥ 255CHAR_MIN Минимальное значение для char −128 −128 ≤ −127(если char представлено какзнаковый char; иначе 0)CHAR_MAX Максимальное значение для char 127 127 ≥ 127(если char представлено какзнаковый char; иначе 255)MB_LEN_MAX Максимальная многобайтовая длина символа по всем локалям различается, обычно от 4 различается, обычно от 4 ≥ 1SHRT_MIN Минимальное значение для short int −32768 −32768 ≤ −32767SHRT_MAX Максимальное значение для short int 32767 32767 ≥ 32767USHRT_MAX Максимальное значение для беззнакового short int 65535 65535 ≥ 65535INT_MIN Минимальное значение для int −2147483648 −2147483648 ≤ −32767INT_MAX Максимальное значение для int 2147483647 2147483647 ≥ 32767UINT_MAX Максимальное значение для беззнакового int 4294967295 4294967295 ≥ 65535LONG_MIN Минимальное значение для long int −2147483648 −9223372036854775808 ≤ −2147483647LONG_MAX Максимальное значение для long int 2147483647 9223372036854775807 ≥ 2147483647ULONG_MAX Максимальное значение для беззнакового long int 4294967295 18446744073709551615 ≥ 4294967295LLONG_MIN Минимальное значение для long long int −9223372036854775808 −9223372036854775808 ≤ −9223372036854775807LLONG_MAX Максимальное значение для long long int 9223372036854775807 9223372036854775807 ≥ 9223372036854775807ULLONG_MAX Максимальное значение для беззнакового long long int 18446744073709551615 18446744073709551615 ≥ 18446744073709551615
Пример 1 #include <stdio.h> #include <limits.h>
int main (void) { if (CHAR_MAX==UCHAR_MAX) { printf("This machine uses unsigned char by default\n"); } else { 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
Ссылки
Руководство по Си--2.5 limits.h, доступно по состоянию на сентябрь 2006.
Категория:Статьи с примерами кода Си