Ferramentas do usuário

Ferramentas do site


prog2:tipos_de_dados

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:

  • Tipos escalares
    • Tipos aritméticos
      • Inteiros
      • Reais
      • Complexos (C99)
    • Tipos ponteiros
  • Tipos não-escalares
    • Arranjos (vetores e matrizes)
    • Estruturas (structs)
    • Uniões

Tipos Inteiros

Os tipos inteiros básicos no padrão C99 são:

Tipo Tamanho (32 bits) Valores (32 bits) Tamanho (64 bits) Valores (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 2 bytes -32.768 a 32.767 idem idem
unsigned short 2 bytes 0 a 65.535 idem idem
int 4 bytes -231 a 231 - 1 idem idem
unsigned int 4 bytes 0 a 232 - 1 idem idem
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 8 bytes -263 a 263 - 1 idem idem
unsigned long long 8 bytes 0 a 264 - 1 idem idem

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.

Tipos Reais

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

Tipo Tamanho (bytes) Valores aceitos 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

Tipo booleano

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.

O Tipo void

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.

prog2/tipos_de_dados.txt · Última modificação: 2019/08/19 13:19 por maziero