Я нашел только довольно несвязанные вопросы из-за множества результатов поиска по запросу printf()
.
Почему uint8_t
не указывает собственную строку формата, а любой другой тип указывает?
Насколько я понимаю printf()
, он должен знать длину предоставленных параметров, чтобы иметь возможность анализировать список переменных аргументов.
Поскольку uint8_t
и uint16_t
используют один и тот же описатель формата %u
, как printf()
"знает", сколько байтов нужно обработать? Или есть какое-то неявное приведение к uint16_t
при поставке uint8_t
?
Может быть, я упускаю что-то очевидное.