Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode usar conversões de tipo para converter explicitamente tipos.
Sintaxe
cast-expression:
unary-expression
(
type-name
)
cast-expression
type-name:
specifier-qualifier-list
abstract-declarator
optar
O type-name é um tipo e cast-expression é um valor a ser convertido nesse tipo. Uma expressão com uma conversão de tipo não é um l-value. O cast-expression é convertido como se tivesse sido atribuído a uma variável do tipo type-name. As regras de conversão para atribuições ( descritas em Conversões de Atribuição) também se aplicam a conversões de tipo. A tabela a seguir mostra os tipos que podem ser convertidos em qualquer tipo específico.
Conversões de tipo legal
| Tipos de destino | Fontes potenciais |
|---|---|
| Tipos integrais | Qualquer tipo inteiro ou tipo de ponto flutuante ou ponteiro para um objeto |
| Ponto flutuante | Qualquer tipo aritmético |
Um ponteiro para um objeto ou void * |
Qualquer tipo inteiro, void *um ponteiro para um objeto ou um ponteiro de função |
| Ponteiro de função | Qualquer tipo integral, um ponteiro para um objeto ou um ponteiro de função |
| Uma estrutura, união ou matriz | Nenhum |
| Tipo void | Qualquer tipo |
Qualquer identificador pode ser convertido em void tipo. No entanto, se o tipo especificado em uma expressão de conversão de tipo não voidfor, o identificador que está sendo convertido nesse tipo não poderá ser uma void expressão. Qualquer expressão pode ser convertida void, mas uma expressão do tipo void não pode ser convertida em nenhum outro tipo. Por exemplo, uma função com void tipo de retorno não pode ter seu retorno convertido em outro tipo.
Uma void * expressão tem um ponteiro de tipo para void, não tipo void. Se um objeto for convertido em void tipo, a expressão resultante não poderá ser atribuída a nenhum item. Da mesma forma, um objeto de conversão de tipo não é um valor l aceitável, portanto, nenhuma atribuição pode ser feita a um objeto de conversão de tipo.
Específico da Microsoft
Uma conversão de tipo pode ser uma expressão l-value, desde que o tamanho do identificador não seja alterado. Para obter informações sobre expressões l-value, consulte Expressões L-Value e R-Value.
Fim da seção específica da Microsoft
Você pode converter uma expressão para digitar void com uma conversão, mas a expressão resultante só pode ser usada quando um valor não é necessário. Um ponteiro de objeto convertido de e para void * o tipo original retornará ao seu valor original.