I only found pretty unrelated questions due to the tons of results searching for printf()
.
Why does uint8_t
not specify its own format string but any other type does?
As far as I understand printf()
, it has to know the length of the supplied parameters to be able to parse the variable argument list.
Since uint8_t
and uint16_t
use the same format specifier %u
, how does printf()
"know" how many bytes to process? Or is there somehow an implicit cast to uint16_t
involved when supplying uint8_t
?
Maybe I am missing something obvious.