Mengapa scanf () membutuhkan "% lf" untuk dobel, ketika printf () tidak apa-apa hanya dengan "% f"?

Mengapa itu scanf()perlu l" %lf" di saat membaca double, kapan printf()bisa menggunakan " %f" terlepas dari apakah argumennya adalah a doubleatau a float? Kode contoh: double d; scanf("%lf", &d); printf("%f",