Considérons le code suivant:
float d = 3.14f;
int i = 1;
auto sum = d + i;
Selon cppreference.com, i
devraient être converties en float
lorsqu'il est ajouté à l' d
. Cependant, lorsque j'ai fait exécuter le code, je trouve qu' sum
4. Pourquoi est-ce arrivé?
Fait intéressant, lorsque j'ai choisi de mettre mon compilateur en C11 mode, j'ai trouvé qu' sum
a été 4.14. Quelles règles le C11 standard de changement qui affectent le résultat?
Qu'arriverait-il si j'ai compilé le même code à l'aide d'un compilateur C++?