Para cada um dos tipos de variáveis existem os modificadores
de tipo. Os modificadores de tipo do C são quatro: signed,
unsigned, long e short. Ao float não
se pode aplicar nenhum e ao double pode-se aplicar apenas o long.
Os quatro podem ser aplicados a inteiros. A intenção é
que short e long devam prover tamanhos diferentes de inteiros
onde isto for prático. int normalmente terá o tamanho
natural para uma determinada máquina. Assim, numa máquina
de 16 bits, int provavelmente terá 16 bits. Numa máquina
de 32, int deverá ter 32 bits. Na verdade, cada compilador
é livre para escolher tamanhos adequados para o seu próprio
hardware, com a única restrição de que shorts
e ints devem ocupar pelo menos 16 bits, longs pelo menos
32 bits, e short não pode ser maior que int, que não
pode ser maior que long. A seguir estão listados os tipos
de dados permitidos e seu valores máximos e mínimos em um
compilador típico para um hardware de 16 bits:
Tipo | Num de bits | Intervalo | |
Inicio | Fim | ||
char | 8 | -128 | 127 |
unsigned char | 8 | 0 | 255 |
signed char | 8 | -128 | 127 |
int | 16 | -32.768 | 32.767 |
unsigned int | 16 | 0 | 65.535 |
signed int | 16 | -32.768 | 32.767 |
short int | 16 | -32.768 | 32.767 |
unsigned short int | 16 | 0 | 65.535 |
signed short int | 16 | -32.768 | 32.767 |
long int | 32 | -2.147.483.648 | 2.147.483.647 |
signed long int | 32 | -2.147.483.648 | 2.147.483.647 |
unsigned long int | 32 | 0 | 4.294.967.295 |
float | 32 | 3,4E-38 | 3.4E+38 |
double | 64 | 1,7E-308 | 1,7E+308 |
long double | 80 | 3,4E-4932 | 3,4E+4932 |
O tipo long double é o tipo de ponto flutuante com maior precisão. É importante observar que os intervalos de ponto flutuante, na tabela acima, estão indicados em faixa de expoente, mas os números podem assumir valores tanto positivos quanto negativos.