Biblioteca estándar de C -<limits.h>
Introducción
<limits.h>es un archivo de cabecera en la biblioteca estándar de C, que define los límites de varios tipos de datos. Estas macros proporcionan información sobre los tipos enteros (char、short、int、longylong longetc.) y la información sobre los valores máximos y mínimos de otros tipos de datos.
Estos límites especifican que una variable no puede almacenar ningún valor fuera de estos límites; por ejemplo, un `unsigned char` puede almacenar un valor máximo de 255.
Macros de la biblioteca
Los siguientes valores son específicos de la implementación y se definen mediante la directiva `#define`; estos valores no deben ser inferiores a los que se indican a continuación.
| macro | Descripción | Valor |
|---|---|---|
| Tipo de carácter | ||
CHAR_BIT |
charNúmero de bits del tipo |
Generalmente 8 |
CHAR_MIN |
charValor mínimo del tipo (con signo o sin signo) |
-128 o 0 |
CHAR_MAX |
charValor máximo del tipo (con signo o sin signo) |
127 o 255 |
SCHAR_MIN |
signed charValor mínimo del tipo |
-128 |
SCHAR_MAX |
signed charValor máximo del tipo |
127 |
UCHAR_MAX |
unsigned charValor máximo del tipo |
255 |
| Tipo entero corto | ||
SHRT_MIN |
shortValor mínimo del tipo |
-32768 |
SHRT_MAX |
shortValor máximo del tipo |
32767 |
USHRT_MAX |
unsigned shortValor máximo del tipo |
65535 |
| Tipo entero | ||
INT_MIN |
intValor mínimo del tipo |
-2147483648 |
INT_MAX |
intValor máximo del tipo |
2147483647 |
UINT_MAX |
unsigned intValor máximo del tipo |
4294967295 |
| Tipo entero largo | ||
LONG_MIN |
longValor mínimo del tipo |
-9223372036854775808L |
LONG_MAX |
longValor máximo del tipo |
9223372036854775807L |
ULONG_MAX |
unsigned longValor máximo del tipo |
18446744073709551615UL |
| Tipo entero largo largo | ||
LLONG_MIN |
long longValor mínimo del tipo |
-9223372036854775808LL |
LLONG_MAX |
long longValor máximo del tipo |
9223372036854775807LL |
ULLONG_MAX |
unsigned long longValor máximo del tipo |
18446744073709551615ULL |
Ejemplo
El siguiente ejemplo demuestra el uso de algunas constantes definidas en el archivo `limit.h`.
Ejemplo
#include <limits.h>
int main() {
printf("Character types:\n");
printf("CHAR_BIT: %d\n", CHAR_BIT);
printf("CHAR_MIN: %d\n", CHAR_MIN);
printf("CHAR_MAX: %d\n", CHAR_MAX);
printf("SCHAR_MIN: %d\n", SCHAR_MIN);
printf("SCHAR_MAX: %d\n", SCHAR_MAX);
printf("UCHAR_MAX: %u\n", UCHAR_MAX);
printf("\nShort integer types:\n");
printf("SHRT_MIN: %d\n", SHRT_MIN);
printf("SHRT_MAX: %d\n", SHRT_MAX);
printf("USHRT_MAX: %u\n", USHRT_MAX);
printf("\nInteger types:\n");
printf("INT_MIN: %d\n", INT_MIN);
printf("INT_MAX: %d\n", INT_MAX);
printf("UINT_MAX: %u\n", UINT_MAX);
printf("\nLong integer types:\n");
printf("LONG_MIN: %ld\n", LONG_MIN);
printf("LONG_MAX: %ld\n", LONG_MAX);
printf("ULONG_MAX: %lu\n", ULONG_MAX);
printf("\nLong long integer types:\n");
printf("LLONG_MIN: %lld\n", LLONG_MIN);
printf("LLONG_MAX: %lld\n", LLONG_MAX);
printf("ULLONG_MAX: %llu\n", ULLONG_MAX);
return 0;
}
Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:
Character types: CHAR_BIT: 8 CHAR_MIN: -128 CHAR_MAX: 127 SCHAR_MIN: -128 SCHAR_MAX: 127 UCHAR_MAX: 255 Short integer types: SHRT_MIN: -32768 SHRT_MAX: 32767 USHRT_MAX: 65535 Integer types: INT_MIN: -2147483648 INT_MAX: 2147483647 UINT_MAX: 4294967295 Long integer types: LONG_MIN: -9223372036854775808 LONG_MAX: 9223372036854775807 ULONG_MAX: 18446744073709551615 Long long integer types: LLONG_MIN: -9223372036854775808 LLONG_MAX: 9223372036854775807 ULLONG_MAX: 18446744073709551615
<limits.h>Proporciona muchos macros relacionados con los tipos enteros para describir los límites de varios tipos de datos. Estos macros son muy útiles para escribir código robusto y portátil, ya que permiten a los programadores obtener fácilmente los valores límite de los tipos de datos en diferentes plataformas.