For floating-point conversions, if you link default or minimized
version of vfprintf(), the symbol \c ? will be output and double
argument will be skiped. So you output below will not be crashed.
For default version the width field and the "pad to left" ( symbol
minus ) option will work in this case.
I think the problem is that in order to support %f in sprintf and its cousins, stdio needs to link in the floating point library. If the program doesn't use floating point maths and you never use a %f format specifier, this is a waste of space.