В языке C есть флаги форматов "%c"
и "%f"
для printf
- и scanf
-подобных функций. Обе эти функции используют аргументы переменной длины ...
, которые всегда преобразуют floats
в doubles
и chars
в ints
.
Мой вопрос в том, что если это преобразование происходит, то почему существуют отдельные флаги для char
и float
? Почему бы просто не использовать те же флаги, что и для int
и double
?
Смежный вопрос:
Почему scanf() требует "%lf" для удвоений, в то время как printf() обходится просто "%f"?