Pourquoi scanf () a-t-il besoin de «% lf» pour les doubles, alors que printf () est d'accord avec seulement «% f»?

Pourquoi a-t-il scanf()besoin du lin " %lf" lors de la lecture de a double, quand printf()peut utiliser " %f" indépendamment du fait que son argument soit a doubleou a float? Exemple de code: double d; scanf("%lf", &d); printf("%f",