Les situations de conversions

Dans le langage C, les situations où se produisent les conversions sont les suivantes :
  1. une valeur d'un certain type est utilisée dans un contexte qui en demande un autre.
    -
    passage de paramètre : le paramètre effectif n'a pas le type du paramètre formel ;
    -
    affectation : la valeur à affecter n'a pas le même type que la variable ;
    -
    valeur rendue par une fonction : l'opérande de return n'a pas le type indiqué dans la déclaration de la fonction.

  2. opérateur de conversion : le programmeur demande explicitement une conversion.

  3. un opérateur a des opérandes de types différents.

Dans les cas 1 et 2, type de départ et type d'arrivée de la conversion sont donnés. Dans le cas 3, par contre, c'est le compilateur qui choisit le type d'arrivée de la conversion. Il le fait selon des règles soigneusement définies. Il y en a deux dans le langage C qui portent les noms de « promotion des entiers » et « conversions arithmétiques habituelles ».

Matthieu Moy 2017-02-08