Почему функция scanf () нуждается в «% lf» для двойников, когда printf () в порядке с «% f»?

Почему это , что scanf()нуждается lв « %lf» при чтении double, когда printf()можно использовать « %f» независимо от того, является ли ее аргумент doubleили float? Пример кода: double d; scanf("%lf", &d); printf("%f",...