C Interview Questions and Answers


How can f be used for both float and double arguments in printf? Are not they different types?

In the variable-length part of a variable-length argument list, the ``default argument
promotions'' apply: types char and short int are promoted to int, and
float is promoted to double. (These are the same promotions that apply to function
calls without a prototype in scope, also known as ``old style'' function
calls. Therefore, printf's %f format always sees a double. (Similarly, %c always
sees an int, as does %hd.)

Posted by:Richards