Biblioteca C - <limits.h>
los limits.hencabezado determina varias propiedades de los distintos tipos de variables. Las macros definidas en este encabezado limitan los valores de varios tipos de variables como char, int y long.
Estos límites especifican que una variable no puede almacenar ningún valor más allá de estos límites, por ejemplo, un carácter sin signo puede almacenar hasta un valor máximo de 255.
Macros de biblioteca
Los siguientes valores son específicos de la implementación y se definen con la directiva #define, pero estos valores pueden no ser más bajos que los que se dan aquí.
Macro | Valor | Descripción |
---|---|---|
CHAR_BIT | 8 | Define el número de bits en un byte. |
SCHAR_MIN | -128 | Define el valor mínimo de un carácter firmado. |
SCHAR_MAX | +127 | Define el valor máximo de un carácter firmado. |
UCHAR_MAX | 255 | Define el valor máximo para un carácter sin firmar. |
CHAR_MIN | -128 | Define el valor mínimo para el tipo char y su valor será igual a SCHAR_MIN si char representa valores negativos, de lo contrario cero. |
CHAR_MAX | +127 | Define el valor para el tipo char y su valor será igual a SCHAR_MAX si char representa valores negativos, de lo contrario, UCHAR_MAX. |
MB_LEN_MAX | dieciséis | Define el número máximo de bytes en un carácter multibyte. |
SHRT_MIN | -32768 | Define el valor mínimo para un int corto. |
SHRT_MAX | +32767 | Define el valor máximo para un int corto. |
USHRT_MAX | 65535 | Define el valor máximo para un int corto sin firmar. |
INT_MIN | -2147483648 | Define el valor mínimo para un int. |
INT_MAX | +2147483647 | Define el valor máximo para un int. |
UINT_MAX | 4294967295 | Define el valor máximo para un int sin firmar. |
LONG_MIN | -9223372036854775808 | Define el valor mínimo para un int largo. |
LONG_MAX | +9223372036854775807 | Define el valor máximo para un int largo. |
ULONG_MAX | 18446744073709551615 | Define el valor máximo para un int largo sin firmar. |
Ejemplo
El siguiente ejemplo muestra el uso de algunas de las constantes definidas en limits.h archivo.
#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);
}
Compilemos y ejecutemos el programa anterior que producirá el siguiente resultado:
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