Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Os tipos internos (também chamados de tipos fundamentais) são especificados pelo padrão de linguagem C++ e são incorporados ao compilador. Os tipos internos não são definidos em nenhum arquivo de cabeçalho. Os tipos embutidos são divididos em três categorias principais: integral, ponto flutuante e vazio. Os tipos integrais representam números inteiros. Os tipos de vírgula flutuante podem especificar valores que podem ter partes fracionárias. A maioria dos tipos internos são tratados como tipos distintos pelo compilador. No entanto, alguns tipos são sinônimos, ou tratados como tipos equivalentes pelo compilador.
Tipo de vazio
O void tipo descreve um conjunto vazio de valores. Nenhuma variável do tipo void pode ser especificada. O void tipo é usado principalmente para declarar funções que não retornam valores ou para declarar ponteiros genéricos para dados não tipados ou digitados arbitrariamente. Qualquer expressão pode ser explicitamente convertida ou convertida para o tipo void. No entanto, tais expressões restringem-se aos seguintes usos:
Uma declaração de expressão. Para obter mais informações, consulte Expressões.
O operando esquerdo do operador de vírgula. Para obter mais informações, consulte Operador de vírgula.
O segundo ou terceiro operando do operador condicional (
? :). Para obter mais informações, consulte Expressões com o operador condicional.
std::nullptr_t
A palavra-chave nullptr é uma constante de ponteiro nulo do tipo std::nullptr_t, que é conversível em qualquer tipo de ponteiro bruto. Para obter mais informações, consulte nullptr.
Tipo booleano
O bool tipo pode ter valores true e false. O tamanho do bool tipo é específico da implementação. Consulte Tamanhos de tipos internos para obter detalhes de implementação específicos da Microsoft.
Tipos de caracteres
O char tipo é um tipo de representação de caracteres que codifica eficientemente os membros do conjunto básico de caracteres de execução. O compilador C++ trata variáveis do tipo char, signed chare unsigned char como tendo tipos diferentes.
Específico da Microsoft: as variáveis do tipo char são promovidas como int se fossem do tipo signed char por padrão, a menos que a /J opção de compilação seja usada. Neste caso, eles são tratados como tipo unsigned char e são promovidos para sem extensão de int sinal.
Uma variável de tipo wchar_t é um tipo de caractere largo ou multibyte. Use o prefixo antes de L um literal de caractere ou cadeia de caracteres para especificar o tipo de caractere largo.
Específico da Microsoft: por padrão, wchar_t é um tipo nativo, mas você pode usar /Zc:wchar_t- para criar wchar_t um typedef para unsigned short. O __wchar_t tipo é um sinônimo específico da Microsoft para o tipo nativo wchar_t .
O char8_t tipo é usado para representação de caracteres UTF-8. Ele tem a mesma representação que unsigned char, mas é tratado como um tipo distinto pelo compilador. O char8_t tipo é novo em C++20.
Específico da Microsoft: o uso de requer a char8_t opção de /std:c++20 compilador ou posterior (como /std:c++latest).
O char16_t tipo é usado para representação de caracteres UTF-16. Deve ser grande o suficiente para representar qualquer unidade de código UTF-16. É tratado como um tipo distinto pelo compilador.
O char32_t tipo é usado para representação de caracteres UTF-32. Deve ser grande o suficiente para representar qualquer unidade de código UTF-32. É tratado como um tipo distinto pelo compilador.
Tipos de ponto flutuante
Os tipos de vírgula flutuante usam uma representação IEEE-754 para fornecer uma aproximação de valores fracionários em uma ampla gama de magnitudes. A tabela a seguir lista os tipos de vírgula flutuante em C++ e as restrições comparativas sobre tamanhos de tipo de vírgula flutuante. Essas restrições são exigidas pelo padrão C++ e são independentes da implementação da Microsoft. O tamanho absoluto dos tipos de ponto flutuante internos não é especificado no padrão.
| Tipo | Conteúdos |
|---|---|
float |
Type float é o menor tipo de ponto flutuante em C++. |
double |
Tipo double é um tipo de ponto flutuante que é maior ou igual ao tipo float, mas menor ou igual ao tamanho do tipo long double. |
long double |
Type long double é um tipo de ponto flutuante que é maior ou igual a type double. |
Específico da Microsoft: A representação de long double e double é idêntica. No entanto, long double e double são tratados como tipos distintos pelo compilador. O compilador Microsoft C++ usa as representações de ponto flutuante IEEE-754 de 4 e 8 bytes. Para obter mais informações, consulte Representação de ponto flutuante IEEE.
Tipos inteiros
O int tipo é o tipo inteiro básico padrão. Ele pode representar todos os números inteiros em um intervalo específico de implementação.
Uma representação inteira assinada é aquela que pode conter valores positivos e negativos. É usado por padrão ou quando a signed palavra-chave modificadora está presente. A unsigned palavra-chave modificador especifica uma representação não assinada que só pode conter valores não negativos.
Um modificador de tamanho especifica a largura em bits da representação inteira usada. A linguagem suporta short, longe long long modificadores. Um short tipo deve ter pelo menos 16 bits de largura. Um long tipo deve ter pelo menos 32 bits de largura. Um long long tipo deve ter pelo menos 64 bits de largura. A norma especifica uma relação de tamanho entre os tipos integrais:
1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
Uma implementação deve manter os requisitos mínimos de tamanho e a relação de tamanho para cada tipo. No entanto, os tamanhos reais podem variar entre implementações. Consulte Tamanhos de tipos internos para obter detalhes de implementação específicos da Microsoft.
A int palavra-chave pode ser omitida quando signed, unsignedou modificadores de tamanho são especificados. Os modificadores e int o tipo, se presentes, podem aparecer em qualquer ordem. Por exemplo, short unsigned e unsigned int short referem-se ao mesmo tipo.
Sinónimos de tipo inteiro
Os seguintes grupos de tipos são considerados sinônimos pelo compilador:
short,short int,signed short,signed short intunsigned short,unsigned short intint,signed,signed intunsigned,unsigned intlong,long int,signed long,signed long intunsigned long,unsigned long intlong long,long long int,signed long long,signed long long intunsigned long long,unsigned long long int
Os tipos inteiros específicos da Microsoft incluem a largura __int8específica, __int16, __int32e __int64 tipos. Esses tipos podem usar os signed modificadores e unsigned . O __int8 tipo de dados é sinónimo de tipo char, __int16 é sinónimo de tipo short, __int32 é sinónimo de tipo int, e __int64 é sinónimo de tipo long long.
Tamanhos dos tipos incorporados
A maioria dos tipos internos tem tamanhos definidos pela implementação. A tabela a seguir lista a quantidade de armazenamento necessária para tipos internos no Microsoft C++. Em particular, long é de 4 bytes mesmo em sistemas operacionais de 64 bits.
| Tipo | Tamanho |
|---|---|
bool, char, char8_t, unsigned char, signed char, __int8 |
1 byte |
char16_t, __int16, short, unsigned short, wchar_t, __wchar_t |
2 bytes |
char32_t, float, __int32, int, unsigned int, long, unsigned long |
4 bytes |
double, __int64, long double, long long, unsigned long long |
8 bytes |
Consulte Intervalos de tipos de dados para obter um resumo do intervalo de valores de cada tipo.
Para obter mais informações sobre conversão de tipo, consulte Conversões padrão.