Compartilhar via


Conversões de Type-Cast

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.

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.

Consulte também

Conversões de tipo