Share via


Conversiones de tipos

Puede utilizar conversiones de tipo para convertir tipos explícitamente.

Sintaxis

cast-expression:
unary-expression
( type-name ) cast-expression

type-name:
specifier-qualifier-listabstract-declaratoropt

type-name es un tipo y cast-expression es un valor que se va a convertir a ese tipo. Una expresión con una conversión de tipo no es un valor L. El elemento cast-expression se convierte como si se hubiera asignado a una variable de tipo type-name. Las reglas de conversión de las asignaciones (descritas en Conversiones de asignación) se aplican a las conversiones de tipo. En la tabla siguiente se muestran los tipos que se pueden convertir a cualquier tipo especificado.

Tipos de destino Posibles orígenes
Tipos enteros Cualquier tipo entero o tipo de punto flotante o puntero a un objeto
Punto flotante Cualquier tipo aritmético
Puntero a un objeto, o void * Cualquier tipo entero, (void *), un puntero a un objeto o un puntero de función
Puntero de función Cualquier tipo entero, un puntero a un objeto o un puntero de función
Una estructura, unión o matriz None
Un tipo void Cualquier tipo

Cualquier identificador se puede convertir al tipo void. Sin embargo, si el tipo especificado en una expresión de conversión de tipos no es void, el identificador que se va a convertir a ese tipo no puede ser una expresiónvoid. Cualquier expresión se puede convertir a void, pero una expresión de tipo void no se puede convertir a ningún otro tipo. Por ejemplo, una función con el tipo de valor devuelto void no puede devolver un valor convertido a otro tipo.

Una expresión void * tiene un puntero de tipo a void, no de tipo void. Si un objeto se convierte al tipo void, la expresión resultante no se puede asignar a ningún elemento. Asimismo, un objeto de conversión de tipo no es un valor L aceptable, por lo que no se puede realizar ninguna asignación a un objeto de conversión de tipo.

Específicos de Microsoft

Una conversión de tipo puede ser una expresión de valor L siempre y cuando el tamaño del identificador no cambie. Para obtener información sobre las expresiones de valor L, vea Expresiones de valor L y de valor R.

FIN de Específicos de Microsoft

Puede convertir una expresión al tipo void con una conversión, pero la expresión resultante solo se puede utilizar donde no se requiera un valor. Un puntero de objeto convertido a void * y después al tipo original volverá a su valor original.

Vea también

Conversiones de tipos