CURSO DE C
O C tem 5 tipos básicos: char, int, float, void, double. Destes não vimos ainda os dois últimos: O double é o ponto flutuante duplo e pode ser visto como um ponto flutuante com muito mais precisão. O void é o tipo vazio, ou um "tipo sem tipo". A aplicação deste "tipo" será vista posteriormente.
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 modificadores podem ser aplicados a inteiros. A
intenção é que short e long devam prover tamanhos diferentes de inteiros
onde isto for prático. Inteiros menores (short) ou maiores (long).
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 ints e ints
devem ocupar pelo menos 16 bits, longs ints pelo menos 32 bits, e short int
não pode ser maior que int, que não pode ser maior que long int. O
modificador unsigned serve para especificar variáveis sem sinal. Um unsigned
int será um inteiro que assumirá apenas valores positivos. 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. Também nesta tabela está especificado o formato que
deve ser utilizado para ler os tipos de dados com a função scanf():
Tipo | Num de bits | Formato para leitura com scanf | Intervalo |
|
Inicio | Fim | |||
char | 8 | %c | -128 | 127 |
unsigned char | 8 | %c | 0 | 255 |
signed char | 8 | %c | -128 | 127 |
int | 16 | %i | -32.768 | 32.767 |
unsigned int | 16 | %u | 0 | 65.535 |
signed int | 16 | %i | -32.768 | 32.767 |
short int | 16 | %hi | -32.768 | 32.767 |
unsigned short int | 16 | %hu | 0 | 65.535 |
signed short int | 16 | %hi | -32.768 | 32.767 |
long int | 32 | %li | -2.147.483.648 | 2.147.483.647 |
signed long int | 32 | %li | -2.147.483.648 | 2.147.483.647 |
unsigned long int | 32 | %lu | 0 | 4.294.967.295 |
float | 32 | %f | 3,4E-38 | 3.4E+38 |
double | 64 | %lf | 1,7E-308 | 1,7E+308 |
long double | 80 | %Lf | 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.
Curso de C da EE/UFMG - 1996 - 2000