<limits.h>

No cabeçalho <limits.h> estão definidas as constantes que delimitam os valores máximos e mínimos que variáveis de um dado tipo podem assumir. Assim, é possível operar com os tipos presentes na linguagem C tendo-se absoluta certeza que uma determinada variável serve ao propósito de alguma aplicação para a qual ele foi designado, uma vez que se espera que essa variável esteja limitada superiormente e inferiormente.

Macros

  • CHAR_BIT: quantidade de bits necessários para se representar uma variável do tipo char.

  • SCHAR_MIN: valor numérico mínimo que a variável do tipo char padrão pode assumir.

  • SCHAR_MAX: valor numérico máximo que a variável do tipo char padrão pode assumir.

  • UCHAR_MAX: valor numérico máximo que um unsigned char pode assumir.

  • CHAR_MIN: valor numérico mínimo que um signed char pode assumir.

  • CHAR_MAX: valor numérico máximo que um signed char pode assumir.

  • SHRT_MIN: valor numérico mínimo que um short int pode assumir.

  • SHRT_MAX: valor numérico máximo que um short int pode assumir.

  • USHRT_MAX: valor numérico máximo que um unsigned short int pode assumir.

  • INT_MIN: valor numérico mínimo que um int pode assumir.

  • INT_MAX: valor numérico máximo que um int pode assumir.

  • UINT_MAX: valor numérico máximo que um unsigned int pode assumir.

  • LONG_MIN: valor numérico mínimo que um long int pode assumir.

  • LONG_MAX: valor numérico máximo que um long int pode assumir.

  • ULONG_MAX: valor numérico máximo que um unsigned long int pode assumir.

Funções

Não há funções nesta biblioteca.

Exemplo de uso

#include <stdio.h>
#include <limits.h>

int main() {
  printf("O tamanho de um int vai de %d ate %d\n", INT_MIN, INT_MAX);
  
  /* Exemplo de overflow (estouro de limite) */
  int overflow = INT_MAX + 1;
  printf("Se somarmos 1 ao maximo, obtemos: %d\n", overflow);

  return 0;
}

Saída do terminal

> clang -o main main.c
> ./main
O tamanho de um int vai de -2147483648 ate 2147483647
Se somarmos 1 ao maximo, obtemos: -2147483648