Comme il n’est pas fortement tapé, j’ai pensé qu’il avait simplement choisi la bonne taille de mémoire et l’avait interprété en fonction du type d’argument. Mais float et double utilisent tous deux %f et ils sont de tailles différentes.
P.S. Je peux voir comment la promotion en copiant la valeur dans un temp et un casting (est-ce vrai?) pourrait fonctionner mais comment ça marche pour scanfs/sscanf ?