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(?))
Стандартный минимум
или максимум диапазона значений по 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 −32768 −32768 ≤ −32767
SHRT_MAX Максимальное значение для short int +32767 +32767 ≥ +32767
USHRT_MAX Максимальное значение для беззнакового short int +65535 +65535 ≥ +65535
INT_MIN Минимальное значение для int −2147483648 −2147483648 ≤ −32767
INT_MAX Максимальное значение для int +2147483647 +2147483647 ≥ +32767
UINT_MAX Максимальное значение для беззнакового int +4294967295 +4294967295 ≥ +65535
LONG_MIN Минимальное значение для long int −2147483648 −9223372036854775808 ≤ −2147483647
LONG_MAX Максимальное значение для long int +2147483647 +9223372036854775807 ≥ +2147483647
ULONG_MAX Максимальное значение для беззнакового long int +4294967295 +18446744073709551615 ≥ +4294967295
LLONG_MIN Минимальное значение для long long int −9223372036854775808 −9223372036854775808 ≤ −9223372036854775807
LLONG_MAX Максимальное значение для long long int +9223372036854775807 +9223372036854775807 ≥ +9223372036854775807
ULLONG_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;
}

См. такжеПравить

Дополнительные источникиПравить

  • Enquire: Программа для автоматической генерации limits.h, также проверяющая корректность значений в уже существующем limits.h

СсылкиПравить