In Steven Prata\'s book \"C Primer Plus\", there\'s a section on Type Conversions, wherein \"The basic rules are\" section has stated in rule 1:
Under K&R C,
It must refer to the result of binary arithmetic operations of float * float
format. In the pre-standard versions of C operands of such expressions were promoted to double
and the result had double
type.
For example, here's a quote from "C Reference Manual"
If both operands are int or char, the result is int. If both are float or double, the result is double.
In C89/90 already this behavior was changed and float * float
expressions produce float
result.
- If either operand has type long double, the other operand is converted to long double
- Otherwise, if either operand is double, the other operand is converted to double.
- Otherwise, if either operand is float, the other operand is converted to float.