Библиотека C - <limits.h>
В limits.hзаголовок определяет различные свойства различных типов переменных. Макросы, определенные в этом заголовке, ограничивают значения различных типов переменных, таких как char, int и long.
Эти ограничения указывают, что переменная не может хранить какое-либо значение за пределами этих ограничений, например, беззнаковый символ может хранить до максимального значения 255.
Макросы библиотеки
Следующие значения зависят от реализации и определены с помощью директивы #define, но эти значения не могут быть ниже, чем указано здесь.
Макрос | Значение | Описание |
---|---|---|
CHAR_BIT | 8 | Определяет количество бит в байте. |
SCHAR_MIN | -128 | Определяет минимальное значение для подписанного char. |
SCHAR_MAX | +127 | Определяет максимальное значение для подписанного char. |
UCHAR_MAX | 255 | Определяет максимальное значение для беззнакового символа. |
CHAR_MIN | -128 | Определяет минимальное значение для типа char, и его значение будет равно SCHAR_MIN, если char представляет отрицательные значения, в противном случае - нулю. |
CHAR_MAX | +127 | Определяет значение для типа char, и его значение будет равно SCHAR_MAX, если char представляет отрицательные значения, в противном случае UCHAR_MAX. |
MB_LEN_MAX | 16 | Определяет максимальное количество байтов в многобайтовом символе. |
SHRT_MIN | -32768 | Определяет минимальное значение для короткого int. |
SHRT_MAX | +32767 | Определяет максимальное значение для короткого int. |
USHRT_MAX | 65535 | Определяет максимальное значение для беззнакового короткого int. |
INT_MIN | -2147483648 | Определяет минимальное значение для int. |
INT_MAX | +2147483647 | Определяет максимальное значение для int. |
UINT_MAX | 4294967295 | Определяет максимальное значение для беззнакового int. |
LONG_MIN | -9223372036854775808 | Определяет минимальное значение для long int. |
LONG_MAX | +9223372036854775807 | Определяет максимальное значение для long int. |
ULONG_MAX | 18446744073709551615 | Определяет максимальное значение для беззнакового long int. |
пример
В следующем примере показано использование нескольких констант, определенных в limits.h файл.
#include <stdio.h>
#include <limits.h>
int main() {
printf("The number of bits in a byte %d\n", CHAR_BIT);
printf("The minimum value of SIGNED CHAR = %d\n", SCHAR_MIN);
printf("The maximum value of SIGNED CHAR = %d\n", SCHAR_MAX);
printf("The maximum value of UNSIGNED CHAR = %d\n", UCHAR_MAX);
printf("The minimum value of SHORT INT = %d\n", SHRT_MIN);
printf("The maximum value of SHORT INT = %d\n", SHRT_MAX);
printf("The minimum value of INT = %d\n", INT_MIN);
printf("The maximum value of INT = %d\n", INT_MAX);
printf("The minimum value of CHAR = %d\n", CHAR_MIN);
printf("The maximum value of CHAR = %d\n", CHAR_MAX);
printf("The minimum value of LONG = %ld\n", LONG_MIN);
printf("The maximum value of LONG = %ld\n", LONG_MAX);
return(0);
}
Давайте скомпилируем и запустим указанную выше программу, которая даст следующий результат:
The number of bits in a byte 8
The minimum value of SIGNED CHAR = -128
The maximum value of SIGNED CHAR = 127
The maximum value of UNSIGNED CHAR = 255
The minimum value of SHORT INT = -32768
The maximum value of SHORT INT = 32767
The minimum value of INT = -2147483648
The maximum value of INT = 2147483647
The minimum value of CHAR = -128
The maximum value of CHAR = 127
The minimum value of LONG = -9223372036854775808
The maximum value of LONG = 9223372036854775807