Biblioteca C - <limites.h>
o limits.hheader determina várias propriedades dos vários tipos de variáveis. As macros definidas neste cabeçalho limitam os valores de vários tipos de variáveis como char, int e long.
Esses limites especificam que uma variável não pode armazenar nenhum valor além desses limites, por exemplo, um caractere sem sinal pode armazenar até um valor máximo de 255.
Macros de biblioteca
Os seguintes valores são específicos da implementação e definidos com a diretiva #define, mas esses valores não podem ser inferiores aos fornecidos aqui.
Macro | Valor | Descrição |
---|---|---|
CHAR_BIT | 8 | Define o número de bits em um byte. |
SCHAR_MIN | -128 | Define o valor mínimo para um caractere assinado. |
SCHAR_MAX | +127 | Define o valor máximo para um caractere assinado. |
UCHAR_MAX | 255 | Define o valor máximo para um caractere não assinado. |
CHAR_MIN | -128 | Define o valor mínimo para o tipo char e seu valor será igual a SCHAR_MIN se char representar valores negativos, caso contrário, zero. |
CHAR_MAX | +127 | Define o valor do tipo char e seu valor será igual a SCHAR_MAX se char representar valores negativos, caso contrário, UCHAR_MAX. |
MB_LEN_MAX | 16 | Define o número máximo de bytes em um caractere multibyte. |
SHRT_MIN | -32768 | Define o valor mínimo para um int curto. |
SHRT_MAX | +32767 | Define o valor máximo para um int curto. |
USHRT_MAX | 65535 | Define o valor máximo para um int curto sem sinal. |
INT_MIN | -2147483648 | Define o valor mínimo para um int. |
INT_MAX | +2147483647 | Define o valor máximo para um int. |
UINT_MAX | 4294967295 | Define o valor máximo para um int não assinado. |
LONG_MIN | -9223372036854775808 | Define o valor mínimo para um inteiro longo. |
LONG_MAX | +9223372036854775807 | Define o valor máximo para um inteiro longo. |
ULONG_MAX | 18446744073709551615 | Define o valor máximo para um inteiro longo sem sinal. |
Exemplo
O exemplo a seguir mostra o uso de algumas das constantes definidas em limits.h Arquivo.
#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);
}
Vamos compilar e executar o programa acima que produzirá o seguinte 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