By man I find
man
printf("%*d", width, num);
and
printf("%2$*1$d", width, num);
are equivalent.
But IMO the second style should be the same as:
printf("%*d", num, width);
However via testing it seems man is right; why?