Tipos de dados

Em C, as variáveis são estaticamente tipadas, ou seja, têm seu tipo pré-definido no código. Em princípio o tipo de uma variável não pode ser mudado (embora isso possa ser contornado através de operações especiais como o type casting).

Os principais tipos de dados em C são:

Os tipos inteiros básicos no padrão C99 em máquinas de 32 bits e 64 bits são:

Tipo Tamanho (32 bits) Faixa (32 bits) Tamanho (64 bits) Faixa (64 bits)
char 1 byte -128 a +127 ou
0 a 255
idem idem
unsigned char 1 byte 0 a 255 idem idem
signed char 1 byte -128 a +127 idem idem
short (ou signed short) 2 bytes -32.768 a +32.767 idem idem
unsigned short 2 bytes 0 a 65.535 idem idem
int (ou signed int) 4 bytes -231 a +231 - 1 idem idem
unsigned int 4 bytes 0 a 232 - 1 idem idem
long (ou signed long) 4 bytes -231 a +231 - 1 8 bytes -263 a +263 - 1
unsigned long 4 bytes 0 a 232 - 1 8 bytes 0 … 264 - 1
long long (ou signed long long) 8 bytes -263 a +263 - 1 idem idem
unsigned long long 8 bytes 0 a 264 - 1 idem idem
* e & (endereços) 4 bytes - 8 bytes -
O arquivo limits.h define constantes para os limites de valores aceitos dos tipos inteiros, como INT_MIN, LONG_MAX, etc. No Linux, esse arquivo se encontra em /usr/include/limits.h.

Como alguns tipos inteiros básicos dependem da implementação do compilador ou da plataforma de execução (16, 32 ou 64 bits), o padrão C99 trouxe definições de tipos inteiros de tamanho fixo (encontradas no arquivo inttypes.h), como int8_t (inteiro de 8 bits com sinal), uint32_t (inteiro de 32 bits sem sinal), etc.

Mais informações sobre tipos de dados em C podem ser encontradas nesta página.

Os tipos reais (de ponto flutuante) básicos são:

Tipo Tamanho (bytes) Faixa de valores Precisão
float 4 bytes ±1.2×10-38 a ±3.4×10+38 6 dígitos
double 8 bytes ±2.3×10-308 a ±1.7×10+308 15 dígitos
long double 10 bytes ±3.4×10-4932 a ±1.1×10+4932 19 dígitos

A especificação C ANSI original não possui um tipo booleano. Em seu lugar, toda variável ou expressão cujo resultado seja zero (ou nulo) é avaliada como FALSA; caso o resultado seja diferente de zero (ou não-nulo), a variável ou expressão é considerada VERDADEIRA (inclusive valores negativos).

A especificação C99 trouxe um tipo booleano (bool), acessível através do arquivo stdbool.h.

A palavra reservada void designa um valor ou variável de tipo desconhecido. Esse tipo é usado em algumas situações especiais que serão vistas posteriormente, como ponteiros para variáveis cujo tipo é desconhecido a priori ou para indicar que uma função não retorna nenhum valor válido.

  • c/tipos_de_dados.txt
  • Última modificação: 2023/08/03 13:41
  • por maziero