Похоже, что это могло быть, есть модификаторы длины (по крайней мере, на C99), которые могут быть применены к int: %hhd, %hd, %ld и %lld означают signed char, short, long и long long. Существует даже модификатор длины, применимый к double: %Lf означает long double.
Вопрос: почему они пропустили float? Следуя шаблону, это могло быть %hf.