English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
limits.h The header file determines various attributes of various variable types. The macros defined in this header file limit the values of various variable types (such as char, int, and long).
These restrictions specify that variables cannot store any values beyond these limits, for example, the maximum value that an unsigned can store is 255.
The following values are specific to the implementation and are defined by the #define directive. These values must not be less than the values given below.
Macro | Value | Description |
---|---|---|
CHAR_BIT | 8 | Define the number of bits in a byte. |
SCHAR_MIN | -128 | Define the minimum value of a signed character. |
SCHAR_MAX | 127 | Define the maximum value of a signed character. |
UCHAR_MAX | 255 | Define the maximum value of an unsigned character. |
CHAR_MIN | 0 | Define the minimum value of the type char, if char represents a negative value, its value is equal to SCHAR_MIN, otherwise it is equal to 0. |
CHAR_MAX | 127 | Definir el valor máximo del tipo char, si char representa un valor negativo, su valor es igual a SCHAR_MAX, de lo contrario es igual a UCHAR_MAX. |
MB_LEN_MAX | 1 | Definir el número máximo de bytes en un carácter multibyte. |
SHRT_MIN | -32768 | Definir un valor mínimo para un entero corto. |
SHRT_MAX | +32767 | Definir un valor máximo para un entero corto. |
USHRT_MAX | 65535 | Definir un valor máximo para un entero corto sin signo. |
INT_MIN | -32768 | Definir un valor mínimo para un entero. |
INT_MAX | +32767 | Definir un valor máximo para un entero. |
UINT_MAX | 65535 | Definir un valor máximo para un entero sin signo. |
LONG_MIN | -2147483648 | Definir un valor mínimo para un entero largo. |
LONG_MAX | +2147483647 | Definir un valor máximo para un entero largo. |
ULONG_MAX | 4294967295 | Definir un valor máximo para un entero largo sin signo. |
El siguiente ejemplo muestra el uso de algunas constantes definidas en el archivo limit.h.
#include <stdio.h> #include <limits.h> int main() { printf("El número de bits de byte %d\n", CHAR_BIT); printf("El valor mínimo de SIGNED CHAR = %d\n", SCHAR_MIN); printf("El valor máximo de SIGNED CHAR = %d\n", SCHAR_MAX); printf("El valor máximo de UNSIGNED CHAR = %d\n", UCHAR_MAX); printf("El valor mínimo de SHORT INT = %d\n", SHRT_MIN); printf("El valor máximo de SHORT INT = %d\n", SHRT_MAX); printf("El valor mínimo de INT = %d\n", INT_MIN); printf("El valor máximo de INT = %d\n", INT_MAX); printf("El valor mínimo de CHAR = %d\n", CHAR_MIN); printf("El valor máximo de CHAR = %d\n", CHAR_MAX); printf("El valor máximo de LONG = %ld\n", LONG_MIN); printf("El valor mínimo de LONG = %ld\n", LONG_MAX); return(0); }
Compilamos y ejecutamos el programa anterior, lo que produce los siguientes resultados:
El número de bits de byte 8 El valor mínimo de SIGNED CHAR = -128 El valor máximo de SIGNED CHAR = 127 El valor máximo de UNSIGNED CHAR = 255 El valor mínimo de SHORT INT = -32768 El valor máximo de SHORT INT = 32767 El valor mínimo de INT = -32768 El valor máximo de INT = 32767 El valor mínimo de CHAR = -128 El valor máximo de CHAR = 127 El valor máximo de LONG = -2147483648 El valor mínimo de LONG = 2147483647