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 −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;
}

См. также[править | править код]

Дополнительные источники[править | править код]

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

Ссылки[править | править код]