Partager via


Conversions de type cast

Vous pouvez utiliser des casts de type pour convertir explicitement les types.

Syntaxe

  • cast-expression :
    expression unaire

    ( type-name ) cast-expression

  • type-name :
    specifier-qualifier-list abstract-declarator opt

type-name est un type et cast-expression est une valeur à convertir en ce type. Une expression avec un cast de type n'est pas une l-value. cast-expression est converti comme s'il avait été assigné à une variable de type type-name. Les règles de conversion pour les assignations (décrites dans Conversions d'assignation) s'appliquent également aux casts de type. Le tableau suivant indique les types pouvant être castés en un type donné.

Casts de type autorisés

Types de destination

Sources possibles

Types intégraux

Tout type entier ou type à virgule flottante ou pointeur vers un objet

Virgule flottante

Tout type arithmétique

Pointeur vers un objet ou (void *)

Tout type entier, (void *), pointeur vers un objet ou pointeur fonction

Pointeur fonction

Tout type intégral, pointeur vers un objet ou pointeur fonction

Structure, union ou tableau

Aucun

Type void

Tout type

Tout identificateur peut être converti en type void. Toutefois, si le type spécifié dans une expression cast-type n'est pas void, l'identificateur converti en ce type ne peut pas être une expression void. Toute expression peut être convertie en void, mais une expression de type void ne peut pas être castée en un autre type. Par exemple, une fonction avec un type de retour void ne peut pas avoir son retour converti en un autre type.

Notez qu'une expression void * possède un pointeur de type vers void, mais pas le type void. Si un objet est converti en type void, l'expression obtenue ne peut pas être assignée à un élément. De même, un objet type cast n'est pas une l-value acceptable. Ainsi, aucune assignation ne peut devenir un objet type cast.

Section spécifique à Microsoft

Un cast de type peut être une expression l-value tant que la taille de l'identificateur ne change pas. Pour plus d'informations sur les expressions l-value, consultez Expressions L-Value et R-Value.

FIN de la section spécifique à Microsoft

Vous pouvez convertir une expression en un type void avec un cast, mais l'expression obtenue peut être utilisée uniquement si une valeur n'est pas requise. Un pointeur d'objet converti en void * et retourné au type d'origine retourne à sa valeur d'origine.

Voir aussi

Concepts

Conversions de type (C)