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 <stdio.h>
#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.

Otras extensiones