Partilhar via


Tipos fundamentais (C++)

Em C++, os tipos fundamentais estão divididos em três categorias: integral, flutuante e void. Os tipos integrais são capazes de manipular números inteiros. Os tipos flutuantes são capazes de especificar valores que podem ter partes fracionárias.

O tipo void descreve um conjunto vazio de valores. Nenhuma variável do tipo void pode ser especificada — ele é usado basicamente para declarar funções que não retornam nenhum valor ou para declarar ponteiros genéricos para dados não tipados ou tipados arbitrariamente. Qualquer expressão pode ser explicitamente convertida no tipo void. No entanto, tais expressões estão restritas aos seguintes usos:

  • Uma instrução de expressão. (Consulte Expressões para obter mais informações.)

  • O operando esquerdo do operador vírgula. (Consulte Operador vírgula para obter mais informações.)

  • O segundo ou terceiro operando do operador condicional (? :). (Consulte Expressões com o operador condicional para obter mais informações.)

A tabela a seguir explica as restrições de tamanhos de tipo. Essas restrições são independentes da implementação da Microsoft.

Tipos fundamentais da linguagem C++

Categoria

Tipo

Conteúdo

Integral

char

O tipo char é um tipo integral que geralmente contém membros do conjunto de caracteres de execução; no caso do Microsoft C++, é o ASCII.

 

 

O compilador do C++ trata variáveis do tipo char, signed char e unsigned char como tendo tipos diferentes. As variáveis do tipo char são promovidas para int como se fossem do tipo signed char por padrão, a menos que a opção de compilação /J seja usada. Nesse caso, elas são tratadas como tipo unsigned char e promovidas a int sem extensão de sinal.

 

bool

O tipo bool é um tipo integral que pode ter um de dois valores, true ou false. Seu tamanho não é especificado.

 

short

O tipo short int (ou apenas short) é um tipo integral que é maior ou igual ao tamanho do tipo char, e menor ou igual ao tamanho do tipo int.

 

 

Os objetos do tipo short podem ser declarados como signed short ou unsigned short. Signed short é sinônimo de short.

 

int

O tipo int é um tipo integral que é maior ou igual ao tamanho do tipo short int, e menor ou igual ao tamanho do tipo long.

 

 

Os objetos do tipo int podem ser declarados como signed int ou unsigned int. Signed int é sinônimo de int.

 

__intn

Inteiro dimensionado, onde n é o tamanho, em bits, da variável inteira. O valor de n pode ser 8, 16, 32 ou 64 (__intn é uma palavra-chave específica da Microsoft).

 

long

O tipo long (ou long int) é um tipo integral que é maior ou igual ao tamanho do tipo int.

 

 

Os objetos do tipo long podem ser declarados como signed long ou unsigned long. Signed long é sinônimo de long.

long long

Maior do que um unsigned long.

Os objetos do tipo long long podem ser declarados como signed long long ou unsigned long long. Signed long long é sinônimo de long long.

Flutuante

float

O tipo float é o menor tipo flutuante.

 

double

O tipo double é um tipo flutuante que é maior ou igual ao tipo float, mas é menor ou igual ao tamanho do tipo long double.

 

long double1

O tipo long double é um tipo flutuante que é igual ao tipo double.

Caractere largo

__wchar_t

Uma variável de __wchar_t designa um tipo de caractere largo ou caracteres multibyte. Por padrão, wchar_t é um tipo nativo, mas você pode usar /Zc:wchar_t- para tornar wchar_t um typedef para unsigned short.

Use o prefixo L antes de uma constante de caractere ou de cadeia de caracteres para designar a constante de tipo de caractere largo.

1   A representação de long double e double é idêntica. No entanto, long double e double são tipos separados.

Específico da Microsoft

A tabela a seguir lista a quantidade de armazenamento necessária para tipos fundamentais no Microsoft C++.

Tamanhos de tipos fundamentais

Tipo

Tamanho

bool

1 byte

char, unsigned char, signed char

1 byte

short, unsigned short

2 bytes

int, unsigned int

4 bytes

__intn

8, 16, 32, 64 ou 128 bits, dependendo do valor de n. __intn é específico da Microsoft.

long, unsigned long

4 bytes

float

4 bytes

double

8 bytes

long double1

8 bytes

long long

Equivalente a __int64.

1   A representação de long double e double é idêntica. No entanto, long double e double são tipos separados.

FIM de Específico da Microsoft

Consulte Intervalos de tipos de dados para ver um resumo do intervalo de valores de cada tipo.

Para obter mais informações sobre a conversão de tipos, consulte Conversões padrão.

Consulte também

Referência

Intervalos de tipos de dados

Outros recursos

Types